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会生成一个无参构造函数