Day02:

  • 1、 Identifiers

UNIQUE:每行唯一
NOT NULL:
IMMUTABLE:once inserted, can never be changed

  • 2、GenerationType生成值

AUTO(默認):表示持久性提供程序(Hibernate)應選擇適當的生成策略
IDENTITY:表示數據庫IDENTITY列將用于生成主鍵值
SEQUENCE:表示數據庫序列應用于獲取主鍵值
TABLE:表示應使用數據庫表獲取主鍵值

隱式使用UUID策略
@Id
@GeneratedValue( generator = "uuid" )
@GenericGenerator(
name = "uuid",
strategy = "org.hibernate.id.UUIDGenerator",
parameters = {
@Parameter(
name = "uuid_gen_strategy_class",
value = "org.hibernate.id.uuid.CustomVersionOneStrategy"
)
}
)
public UUID id;

  • 3、關系映射

父方:
@OneToMany(mappedBy = "person", cascade = CascadeType.ALL, orphanRemoval = true)
private List<Phone> phones = new ArrayList<>();
@OneToOne(mappedBy = "phone", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.LAZY)
private PhoneDetails details;
子方:
@ManyToOne
private Person person;
@OneToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "phone_id")
private Phone phone;

  • 4、集合

兩個實體不能共享同一個集合的引用
集合值屬性不支持空值語義(hibernate不區分空集合和空集合引用)

  • 5、NaturalIdLoadAccess 自然編號

API:load()獲取對實體的引用(該實體已初始化)
getReference():獲取引用
@NaturalId(mutable=true):默認為不可改,mutable=true時可變

  • 5、繼承

父實體@MappedSuperclass:在域模型中體現,不在數據庫模式中反應,不支持多態查詢
single table:@Inheritance(strategy = InheritanceType.SINGLE_TABLE),所有子類映射到同一個數據庫表,每個子類必須定義唯一的標識符值,所以查詢效率最高,只需單表
Joined table:@Inheritance(strategy = InheritanceType.JOINED)每個類有自己的表,超類表關聯關系。該表主鍵為超類表的外鍵,該表@PrimaryKeyJoinColumn(name = "account_id")設置外鍵
Table per class:@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS),各存各的,考慮多態關聯,使用union

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 非本人總結的筆記,抄點筆記復習復習。感謝傳智博客及黑馬程序猿記筆記啊記筆記 持久化類的狀態 持久化類三種狀態 持久...
    鍵盤瞎閱讀 442評論 0 1
  • 指測尊嚴——紅塵執筆速寫廟宇的故事 文/清勇盧追 “尊嚴”是什么?——這是某日某處某小和尚對老和尚的請教。也是老和...
    清勇盧追閱讀 363評論 0 1
  • 最近常常在夢里遇到那些已經逝去的人,原來潛意識里表現出來的某種渴望,在現實中是無法實現的,所以它以夢這種虛幻的東西...
    果爾家的叮當貓閱讀 271評論 0 0
  • 每天晚上來到臥室,養成了只要看到床就會覺得很舒服很幸福的感覺,忙碌了一天,終于可以安頓好自己的心了。
    給我一只折耳喵閱讀 139評論 0 0
  • 不確定的事情,時有發生。 回想起前兩天過關的一幕,還是心有余悸,是否迎來了人生第一次的誤機。因為工作緣故,時常出差...
    Alvin_Lcl閱讀 183評論 0 0