JPA的常用注解
@EntityListeners:实现对实体属性变化的跟踪,提供了保存前、保存后、更新前、更新后、删除前、删除后等状态
@DynamicUpdate:设置为true时,表示update对象的时候,生成动态的update语句,若该字段的值为null,不会加入到update语句中,默认为false(@DynamicInsert 同理)
@SelectBeforeUpdate:
@Enumerated:使用此注解映射枚举字段,以string类型存入数据库 –》注入数据库的类型:EnumType.ORDINAL(Interger)、EnumType.STRING(String)
@Column注解的columnDefinition用法:该属性表示创建表时,该字段创建的sql语句,一般用于通过Entity生成表的定义时使用,如果数据库中,表已经建好,该属性没有必要使用
@JoinColumn:
@Immutable:声明一个不可变类,一个类的对象在通过构造方法创建后如果状态不会再被改变,那么它就是一个不可变(immutable)类
@Subselect:使用子查询代替视图
@NamedEntityGraph : 注解在实体上 , 解决典型的N+1问题,name表示实体图名, 与 repository中的注解 @EntityGraph的value属性相对应, attributeNodes 表示被标注要懒加载的属性节点 比如: 要懒加载的子分类集合children