自定义基本类型
即除了hibernate自带的基本类型,自定义Java类型与SQL类型绑定
1、实现BasicType接口并注册
2、实现UserType接口不需要类型注册
映射枚举
@Enumerated
属性转换器
AttributeConverter接口,重写convertToDatabaseColumn、convertToEntityAttribute方法,打上@Convert
Date类型格式化
@Temporal,打在date类型字段
1、@Temporal(TemporalType.DATE)——》实体类会封装成日期“yyyy-MM-dd”的 Date类型。
2、@Temporal(TemporalType.TIME)——》实体类会封装成时间“hh-MM-ss”的 Date类型。
3、@Temporal(TemporalType.TIMESTAMP)——》实体类会封装成完整的时间“yyyy-MM-dd hh:MM:ss”的 Date类型。
属性生成
@Generated:实体持久化或者更新时,hibernate从数据获取数据生成属性,貌似不用持久化打注解的那个字段
@GeneratorType:实体持久化或者更新时,通过自定义生成器来设置当前注解属性的值
@CreationTimestamp:插入时自动赋值时间
@UpdateTimestamp:更新时自动赋值时间
列转换器:读写表达式
@ColumnTransformer(read = “quantity / 100”, write = “? * 1000”)
虚拟列,可通过配置计算赋值
@Formula
实体动态插入
@DynamicInsert
实体动态更新
@DynamicUpdate
懒加载
@Basic(fetch = FetchType.LAZY)
hibernate默认不对@Basic处理,需要字节码增强
不同属性懒加载:@LazyGroup
乐观锁
@Version
@OptimisticLock
悲观锁
@Lock