資源描述:
《hibernate注解總結(jié)(一)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在工程資料-天天文庫。
1、Hibernate注解總結(jié)(一)1?類級(jí)別注解@Entity映射實(shí)體類@Table映射數(shù)旬庫表@Entity(name="tableNameH)?必須,注解將一個(gè)類聲明為一個(gè)實(shí)體bean。屬name-可選,對(duì)應(yīng)數(shù)據(jù)庫中的一個(gè)表。若表名與實(shí)體類名相同,則可以省略。@Table(name=""/catalog="",schema="")-可選,通常和@Entity配合使用,只能標(biāo)注在實(shí)體的class定義處,表示實(shí)體對(duì)應(yīng)的數(shù)據(jù)庫表的信息。屬性:name-可選,表示表的名稱,默認(rèn)地,表名和實(shí)體名稱一致,只冇在不一致的情況下才需要指定表名catal
2、og-可選,表示Catalog名稱,默認(rèn)為CatalogC").schema?可選,表示Schema名稱,默認(rèn)為Schema("").2.屬性級(jí)別注解@ld映射生成主鍵@Version定義樂觀鎖@Column映射表的列@Transient定義暫態(tài)屬性2.1與主鍵相關(guān)注解@ld-必須,定義了映射到數(shù)據(jù)庫表的主鍵的屬性,一個(gè)實(shí)體只能有一個(gè)屬性被映射為主鍵,置于getXxxx()前。@GeneratedValue(strategy=GenerationType,generator="")-可選,用于定義主鍵牛-成策略。屬性:Strategy-表
3、示主鍵生成策略,取值有:GenerationType.AUTO?根據(jù)底層數(shù)據(jù)庫口動(dòng)選擇(默認(rèn)),若數(shù)據(jù)庫支持口動(dòng)增長類型,則為口動(dòng)增長。GenerationType.lNDENTITY?根據(jù)數(shù)據(jù)庫的Identity字段生成,支持DB2、MySQL、MS、SQLServer.SyBase與HyperanoicSQL數(shù)據(jù)庫的Identity類型主鍵。GenerationType.SEQUENCE-使用Sequence來決定主鍵的取值,適合Oracle、DB2等支持Sequence的數(shù)據(jù)庫,一般結(jié)合@SequenceGenerator使川。(O
4、racle沒有自動(dòng)增長類型,只能用Sequence)GenerationType.TABLE?使用指定表來決定主鍵取值,結(jié)合@TableGenerator使用。如:@ld@TableGenerator(name="tab_cat_gen",allocationSize=l)@GeneratedValue(Strategy=GenerationType.Table)Generator-表示主鍵生成器的名稱,這個(gè)屬性通常和ORM框架相關(guān),例如:Hibernate可以指定uuid等主鍵生成方式@SequenceGenerator—注解聲明了一個(gè)
5、數(shù)據(jù)庫序列。屬性:name-表示該表主鍵生成策略名稱,它被引用在@GeneratedValue屮設(shè)置的“generator”值屮。sequenceName?表示生成策略用到的數(shù)據(jù)庫序列名稱。initialvalue-表示主鍵初始值,默認(rèn)為0.allocationsize-每次主鍵值增加的大小,例如設(shè)置成1,則表示每次創(chuàng)建新記錄后自動(dòng)加1,默認(rèn)為50.示例:@ld@GeneratedValues(strategy=StrategyType.SEQUENCE)publicintgetPk(){returnpk;}Hibernate的訪問類型為
6、field時(shí),在字段上進(jìn)行注解聲:訪問類型為property時(shí),在getter方法上進(jìn)行注釋聲明。2.2與非主鍵相關(guān)注解@Version?可以在實(shí)體bean屮使用@Version注解,通過這種方式可添加對(duì)樂觀鎖定的支持@Basic■用于聲明屬性的存取策略:@Basic(fetch=FetchType.EAGER)即時(shí)獲取(默認(rèn)的存取策略)@Basic(fetch=FetchType.LAZY)延遲獲取(?Temporal?用于定義映射到數(shù)據(jù)庫的吋間精度:@Temporal(TemporalType=DATE)LI期@Temporal(Te
7、mporalType=TIME)時(shí)間@Temporal(TemporalType=TIMESTAMP)兩者兼具@Column-可將屬性映射到列,使用該注解來覆蓋默認(rèn)值,@Column描述了數(shù)據(jù)庫表屮該字段的詳細(xì)定義,這對(duì)于根據(jù)JPA注解生成數(shù)據(jù)庫表結(jié)構(gòu)的工具非常有作用。屬性:name-可選,表示數(shù)據(jù)庫表中該字段的名稱,默認(rèn)情形屬性名稱一致nullable-可選,表示該字段是否允許為null,默認(rèn)為trueunique?可選,表示該字段是否是唯一標(biāo)識(shí),默認(rèn)為falselength-可選,表示該字段的大小,僅對(duì)String類型的字段有效,默認(rèn)
8、值255.insertable-可選,表示在ORM框架執(zhí)行插入操作時(shí),該字段是否應(yīng)出現(xiàn)INSETRT語句中,默認(rèn)為trueupdateable?可選,表示在ORM框架執(zhí)行更新操作時(shí),該字段是否