2018-11-06-常用的Annotation
2018-11-08 本文已影响0人
LiuYanPin
Spring持久化
javax.persistence.*
-
@Id
主键 -
@GeneratedValue(generator = "A")
这是生成Id的值的一个属性,代表要通过这个方法生成值,这是值的生成器。 -
@GenericGenerator(name = "A",strategy = "B")
这是在标识生成器之后的一个策略。name
要和上面的生成值generator
的相同。 -
@NotNull
对应的字段在数据库不能为空 -
@OneToMany()
表明一对多关系,
orphanRemoval
设为true
时可级联删除。
FetchType
有LAZY,EAGER;
参数
Class targetEntity() default void.class;
CascadeType[] cascade() default {};
FetchType fetch() default FetchType.LAZY;
String mappedBy() default "";
boolean orphanRemoval() default false;
-
@JoinColumn(name = "xxId")
表示当前实体在对应的其他表中的字段。一般为当前实体名加上Id
。 -
@Enumerated
如果当前的字段是个枚举值,可以声明这个标记。 -
@CreationTimestamp
一般用于创建时间的时间戳 -
@UpdateTimestamp
一般用于更新时间的时间戳 -
@Temporal(TemporalType.TIMESTAMP)
表示此字段的时间类型,为了与数据库一致,一般用TIMESTAMP
-
@ElementCollection
实体的这个字段是一个集合时使用。@CollectionTable
是一对多关系相应的表名。
@ElementCollection
@CollectionTable(name = "book",
joinColumns = {@JoinColumn(name = "book_id", referencedColumnName = "id")})
@Column(name = "author_id")
private List<String> bookIds;
-
@ManyToOne
表示多对一关系,本实体是1,需要写级联的列@JoinColumn(name = "B")
,B表示本实体中的列名。 @Fetch
-
@Convert
表示本字段需要转换。 @LazyCollection
-
@Builder.Default
字段有默认值的时候 @NotBlank
@NotEmpty
- 有两个
@Id
时,这个类需要实现序列化implements Serializable
-
@Transient
数据库没有的字段,实体中需要有的字段 -
@OrderBy
排序 @Valid
lombok
-
@Builder
通过生成一个内部类来起作用。 -
@NoArgsConstructor
会生成一个无参构造函数