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
會生成一個無參構造函數