Hibernate註解開發之屬性級別的註解

2021-09-06 20:17:37 字數 2468 閱讀 3258

回顧

hibernate註解開發之類級別的註解

屬性級別註解

@id必須, 表示對映到資料庫表中的主鍵的屬性, 乙個實體類可以有乙個或多個屬性被對映為主鍵, 可置於主鍵屬性或者get***()方法上

如果乙個類中有多個屬性被定義為主鍵, 則該實體類必須實現serializable介面

@generatedvalue(strategy = "")

① strategy = generatedvalue.auto  //根據底層資料庫自動選擇(預設)

@id //設定為主鍵

@generatedvalue //主鍵自增

private int sid; //學號

② strategy = generatedvalue.identity  //根據資料庫的identify欄位自動生成(主鍵需要為整型)

③ strategy = generatedvalue.sequence  //使用sequence來決定主鍵的取值

④ strategy = generatedvalue.table  //使用指定表來決定主鍵的取值(需要結合@tablegenerator(name = "指定表名"))

如果主鍵為字串型別

@id //設定為主鍵

@generatedvalue(generator = "sid") //由於是主鍵的字串型別, 無法使用預設自增, 此時需要指定主鍵生成器

@genericgenerator(name = "sid", strategy = "assigned") //使用hibernate的註解自定義主鍵生成器, assigned為手動賦值

@column(length = 8) //預設的長度為255, 對於主鍵來說太長, 需要重新指定

private string sid; //學號

@column(可將屬性對映到列)

name: 可選, 表示資料庫表中該字段的名稱, 預設情形和屬性名稱一致

nullable: 可選, 表示該欄位是否允許為空, 預設為true

unique: 可選, 表示該字段的大小, 僅對string型別的字段有效, 預設值255(如果是主鍵不能使用預設值)

insertable: 可選, 表示在orm框架執行插入操作時, 該欄位是否應該出現在insert語句中, 預設為true

updatable: 可選, 表示在orm框架執行更新操作時, 該欄位是否應該出現在update語句中, 預設是為true, 對於一經建立就不可以更改的字段, 該屬性非常有用, 如birthday(生日)字段

@embedded(加在屬性上, 表示這是乙個嵌入類): 需要配合@embeddable

@embeddedid(加在屬性上, 表示這是乙個復合主鍵類): 需要配合@embeddable

@id //設定為主鍵

@embeddedid //標註在屬性上

private studentpk pk; //學號

復合主鍵類studentspk

可選, 表示該屬性並非乙個到資料庫表的字段的對映, orm框架將忽略該屬性, 如果乙個屬性並非資料表中的字段對映, 就務必將其標示為@transient, 否則orm框架預設其注釋為@basic

Hibernate註解開發之關聯對映的註解

回顧 hibernate註解開發之類級別的註解 hibernate註解開發之屬性級別的註解 1.一對一單向外來鍵關聯 students04 entity public class students04 implements serializable idcard entity public clas...

Spring 快速開發之註解開發

註解只不過是乙個標記,儲存了少量的內容資訊,具體功能是由具體的框架實現 啟動註解功能 啟動註解掃瞄,載入類中配置的註解項 context component scan base package packagename bean的定義 component public class classname ...

springmvc註解開發

1.配置dispatcherservlet 2.在springmvc中配置三大元件 3.在spring容器中配置action 使用 controller 與此同型別的還有 service responsitory component 使用spring容器的元件掃瞄,自動掃瞄到action在sprin...