hibernate註解note
@Id標識主鍵屬性
1.hibernate5.2 mysql5.7 不需要實現 serializable也可以?
2.主鍵255的長度我生成了?
@GeneratedValue主鍵生成策略
1.主鍵設置成string類型,並且@GeneratedValue(strategy=GenerationType.AUTO)這麽設置是可以生成表的,,不過會生成兩張表,其中一張是序列的表,只是不能手動賦值罷了,還有就是string作為主鍵並不用@Column(length=8)設置長度,實測並沒有限制長度,只是數據庫開銷大了點,也是可以實現建表的?
2.auto是主鍵由程序自動控制,identity才是主鍵自增長?
3.@GenerateValue,我設置成auto, 他新建立了一個鏈表結構的 table ...?
@Embeddable嵌入類屬性, 加到嵌入類的頭上
1.講屬性級別的@Embeddable註解的時候,沒有在引用屬性中標註@Embedded註解也是可以的,所以為什麽還要用一下@Embedded註解呢?
@EmbeddedId嵌入式主鍵類實現復合主鍵(聯合主鍵?)
1.@EmbeddedId標到屬性頭上, @Embeddable標到復合主鍵類頭上
2.嵌入式主鍵類必須實現序列化接口, 必須含有默認的public無參構造方法, 必須覆蓋equals和hashcode方法
@Transient表示並非一個到數據庫表的字段的映射, ORM框架將忽略該屬性(ORM框架默認一個屬性為@BASIC)
=====================關聯映射========================
實體間映射關系
一對一: 一個公民一個身份證號
一對多(多對一): 一個公民多個銀行賬號
多對多: 一個學生有多個老師, 一個老師有多個學生
參考另一篇:hibernate關聯映射註解
hibernate註解note