Hibernate学习之Hibernate注解总结
Hibernate學(xué)習(xí)之Hibernate注解總結(jié)http://www.bieryun.com/3269.html
一、類級(jí)別的注解
@Entity
name:表的名字(可選)一般表名和類名相同
必須指定主鍵屬性@Id
@Table
name:映射表的名稱(可選)
catalog:目錄(可選)默認(rèn)為空
schema:模式(可選)默認(rèn)為空
與@Entity注解配合使用,只能表示在實(shí)體類class定義處,表示實(shí)體類對(duì)應(yīng)數(shù)據(jù)庫表的信息
@Embeddable
表示一個(gè)非Entity類,不是一個(gè)實(shí)體類,可以嵌入到實(shí)體類中作為一個(gè)屬性存在。不映射成表
二、方法級(jí)別的注解
@Id
表示映射為主鍵屬性,可以位于主鍵屬性或者其get方法前
如果一個(gè)實(shí)體類定義多個(gè)主鍵屬性,則必須實(shí)現(xiàn)serializable接口
如果有string類型的主鍵,長度不能太長,需要用@column注解指定長度
@SequenceGenerator
@GeneratedValue
(可選)用于指定主鍵生成策略
strategy:表示主鍵生成策略,
取值有:
GenerationType.AUTO(默認(rèn),根據(jù)數(shù)據(jù)庫底層自動(dòng)選擇,主鍵是字符串則不能指定為auto)
GenerationType.INDENTITY(根據(jù)數(shù)據(jù)庫identity字段生成)
GenerationType.SEQUENCE(序列。使用squence來決定主鍵的取值)
GenerationType.TABLE(使用指定表來決定主鍵生成策略 與@TableGenerator使用)
generator:生成器
字符串的主鍵手動(dòng)賦值
@Id
@GeneratedValue(generator="sid")
@GenericGenerator(name="sid",strategy="assigned")
?
@Column
將屬性映射到列
@Embedded
表示該屬性是某個(gè)嵌入類對(duì)象,嵌入類要標(biāo)注@Embedable注解
@EmbededId
使用嵌入式主鍵類實(shí)現(xiàn)復(fù)合主鍵
嵌入式主鍵類必須是愛心serializable接口,必須有默認(rèn)的public無參構(gòu)造方法,必須覆蓋equals和hashCode方法
@Lob
@Version
@Basic
@Transient
(可選) 表示該屬性并非一個(gè)到數(shù)據(jù)庫的字段的映射,如果不加這個(gè)注解就會(huì)映射到數(shù)據(jù)庫字段并且ORM默認(rèn)為其添加@Basic
三、關(guān)系映射級(jí)別的注解
1、一對(duì)一單項(xiàng)外鍵關(guān)聯(lián)
@OneToOne(cascade=CascadeType.ALL)
@JoinColumn(name=””,unique=true)
先保存外鍵對(duì)象,再保存主表對(duì)象
主表:
關(guān)聯(lián)表:
2、一對(duì)一雙向外鍵關(guān)聯(lián)
主表:
被控方:
3、一對(duì)一雙向外鍵聯(lián)合主鍵
4、多對(duì)一單向外鍵
@ManyToOne(cascade={cascadeType.ALL},fetch=FetchType.EAGER)
@JoinColumn(name=””,referencedColumn=””)
一方:
多方:
在多方添加一方。
5、一對(duì)多單向外鍵
@OneToMany(cascade={cascadeType.ALL},fetch=FetchType.LAZY)
@JoinColumn(name=””)
一方:
多方:
在一方添加多方
6、一對(duì)多雙向外鍵
一方:
多方:
7、多對(duì)多單向外鍵
其中一個(gè)多方:
8、多對(duì)多雙向外鍵
其中一個(gè)多方:
另一個(gè)多方:
總結(jié)
以上是生活随笔為你收集整理的Hibernate学习之Hibernate注解总结的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring-boot 自定义启动图标彩
- 下一篇: z/OS是什么