- @Entity:標識這是一個JPA實體類,告訴JPA在程序運行的時候記得生成這個實體類所對應的表
- @Table:自定義設置這個實體類在數據庫所對應的表名
屬性 | 說明 |
---|---|
name | 自定義的表名 |
-
@ID:設置爲主鍵Id
-
@GeneratedValue:設置主鍵的生成策略,依賴於具體的數據庫
主鍵的生成策略詳情:https://blog.csdn.net/lhg1714538808/article/details/105035492. -
@Basic:表示一個簡單的屬性到數據庫表的字段的映射
屬性 | 值 | 說明 |
---|---|---|
fetch | FetchType.EAGER | 主動抓取 |
fetch | FetchType.LAZY | 延遲加載 |
- @Column:對字段名進行一些個性化的設置
屬性 | 說明 |
---|---|
name | 字段名 |
length | 字段長度 |
nullable | 可否爲空 |
unique | 是否唯一 |
columnDefinition | 該字段的類型和長度 |
- @Transient:表示該屬性並非一個到數據庫表的字段的映射,ORM框架將忽略該屬性
映射的註解說明:
- @OneToMany:建立一對多的關係映射
屬性 | 說明 |
---|---|
targetEntityClass | 指定多的多方的類的字節碼 |
mappedBy | 指定從表實體類中引用主表對象的名稱 |
cascade | 指定要使用的級聯操作 |
fetch | 指定是否採用延遲加載 |
orphanRemoval | 是否使用孤兒刪除 |
cascade:配置級聯操作
值 | 說明 |
---|---|
CascadeType.MERGE | 級聯更新 |
CascadeType.PERSIST | 級聯保存 |
CascadeType.REFRESH | 級聯刷新 |
CascadeType.REMOVE | 級聯刪除 |
CascadeType.ALL | 包含所有 |
- @ManyToOne:建立多對一的關係
屬性 | 說明 |
---|---|
targetEntityClass | 指定一的一方實體類字節碼 |
cascade | 指定要使用的級聯操作 |
fetch | 指定是否採用延遲加載 |
optional | 關聯是否可選。如果設置爲false,則必須始終存在非空關係 |
- @JoinColumn:用於定義主鍵字段和外鍵字段的對應關係
屬性 | 說明 |
---|---|
name | 指定外鍵字段的名稱 |
referencedColumnName | 指定引用主表的主鍵字段名稱 |
unique | 是否唯一。默認值不唯一 |
nullable | 是否允許爲空。默認值允許 |
insertable | 是否允許插入。默認值允許 |
updatable | 是否允許更新。默認值允許 |
columnDefinition | 列的定義信息 |
- @ManyToMany:用於映射多對多關係
屬性 | 說明 |
---|---|
cascade | 配置級聯操作 |
fetch | 配置是否採用延遲加載 |
targetEntity | 配置目標的實體類。映射多對多的時候不用寫 |
- @JoinTable:針對中間表的配置
屬性 | 說明 |
---|---|
nam | 配置中間表的名稱 |
joinColumns | 中間表的外鍵字段關聯當前實體類所對應表的主鍵字段 |
inverseJoinColumn | 中間表的外鍵字段關聯對方表的主鍵字段 |
- @JoinColumn:用於定義主鍵字段和外鍵字段的對應關係
屬性 | 說明 |
---|---|
nam | 配置級聯操作 |
referencedColumnName | 指定引用主表的主鍵字段名稱 |
unique | 是否唯一。默認值不唯一 |
nullable | 是否允許爲空。默認值允許 |
insertable | 是否允許插入。默認值允許 |
updatable | 是否允許更新。默認值允許 |
columnDefinition | 列的定義信息 |