日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

hibernate中的Annotation补充

發布時間:2023/12/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 hibernate中的Annotation补充 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

下面使用Annotation來定義一個實體類:

@Entity

@Table(name="person_table") ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? //不是引入org.hibernate.persistence,因為這個只可以在hibernate環境下使用

public?class?Person ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?//應引用javax.persistence,其實Annotation最后是放在get方法上面,更不容易出問題

{

?

@EmbeddedId

@AttributeOverrides({

@AttributeOverride(name="first"

,?column=@Column(name="person_first")),

@AttributeOverride(name="last"

,?column=@Column(name="person_last"?,?length=20))

})

private?Name?name;

//普通屬性

@Column(name="person_email")

private?String?email;

@Embedded

@AttributeOverrides({

@AttributeOverride(name="name"?

,?column=@Column(name="cat_name"?,?length=35)),

@AttributeOverride(name="color"?

,?column=@Column(name="cat_color"))

})

//組件屬性,代表此人擁有的寵物

private?Cat?pet;

//省略name屬性的setter和getter方法

...

//省略email屬性的setter和getter方法

...

//省略pet屬性的setter和getter方法

...

}

上面程序的粗體字代碼就可管理實體類與數據表之間的映射關系,其中@Entity用于標注該類是一個持久化類,@?EmbeddedId用于標注復合類型的標識屬性,而@Embedded用于標注一個組件屬性,也就是說Person的name屬性就是一個復合類型的標識屬性;pet屬性是一個組件屬性。

?

上面程序還用了Name類,它是一個Person實體的標識屬性的類型,程序使用@Embeddable標注它即可。如下代碼所示:

//修飾組件屬性類

@Embeddable

public?class?Name

implements?java.io.Serializable

{

private?String?first;

private?String?last;

//無參數的構造器

public?Name()

{

}

//初始化全部屬性的構造器

public?Name(String?first?,?String?last)

{

this.first?=?first;

this.last?=?last;

}

//省略first屬性的setter和getter方法

...

//省略last屬性的setter和getter方法

...

//提供重寫的equals方法

public?boolean?equals(Object?obj)

{

if?(this?==?obj)

{

return?true;

}

if?(obj.getClass()?==?Name.class)

{

Name?target?=?(Name)obj;

if?(target.getFirst().equals(first)

&&?target.getLast().equals(last))

{

return?true;

}

}

return?false;

}

//提供重寫的hashCode方法

public?int?hashCode()

{

return?first.hashCode()?+?last.hashCode()?*?17;

}

}

上面Name類需要作為標識屬性的類型,因此一樣需要實現java.io.Serializable接口,并重寫了hashCode()和equals()兩個方法。

?

至于Person類所包含的組件屬性pet,它所屬的Cat類也只要簡單地使用@Embeddable修飾即可,下面是該Cat類的代碼:

//修飾組件屬性類

@Embeddable

public?class?Cat

{

private?String?name;

private?String?color;

//無參數的構造器

public?Cat()

{

}

//初始化全部屬性的構造器

public?Cat(String?name?,?String?color)

{

this.name?=?name;

this.color?=?color;

}

//省略name屬性的setter和getter方法

...

//省略color屬性的setter和getter方法

...

}

?

一旦在實體類中通過上面Annotation進行標注之后,Hibernate已經能夠理解實體類與數據表之間的映射關系了,也就不再需要*.hbm.xml的映射文件了。此時要將hibernate.cfg.xml文件略做修改——告訴它去加載指定實體類,而不是根據映射文件加載。本應用所使用的hibernate.cfg.xml文件代碼如下:

<?xml?version="1.0"?encoding="GBK"?>

<!--?指定Hibernate配置文件的DTD信息?-->

<!DOCTYPE?hibernate-configuration?PUBLIC

"-//Hibernate/Hibernate?Configuration?DTD?3.0//EN"

"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

<!--?hibernate-?configuration是連接配置文件的根元素?-->

<hibernate-configuration>

<session-factory>

<!--?省略其他配置屬性?-->

...

<!--?羅列所有的持久化類?-->

<mapping?class="org.crazyit.app.domain.Person"/>

</session-factory>

</hibernate-configuration>

經過上面修改之后,主程序不需要任何改變。不管使用XML映射文件管理實體的映射、還是采用Annotation管理實體的映射,Hibernate的處理完全相同。


轉載于:https://www.cnblogs.com/java20130725/archive/2012/04/08/3215775.html

總結

以上是生活随笔為你收集整理的hibernate中的Annotation补充的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产超碰 | 91av国产精品 | 国产一区网站 | 99久久婷婷国产综合精品草原 | 久久午夜网 | 露胸app| 欧美日韩人妻精品一区在线 | 奇米影视奇米色 | 亚洲 欧美 中文字幕 | 亚洲无码久久久久久久 | eeuss国产一区二区三区黑人 | 亚洲av少妇一区二区在线观看 | 午夜羞羞影院 | 啪啪中文字幕 | 69精品在线 | 色无极影院亚洲 | 一本色道久久综合精品婷婷 | 日韩一区免费观看 | 久久精品国产亚洲av嫖农村妇女 | 自拍第二页 | 青青草免费观看视频 | 久久99精品久久久水蜜桃 | 日韩欧美中 | 国产在线视频卡一卡二 | 亚洲中文字幕久久无码 | 男人天堂av网 | 国产成人av免费观看 | 久久影片 | 911色| 亚洲啊啊| 国产美女黄网站 | 国产欧美日韩精品区一区二污污污 | 亚洲成年 | 91大神网址 | 少妇流白浆 | 国产成人三级一区二区在线观看一 | jizzjizz视频| 黄色在线免费观看视频 | 天降女子在线观看 | 久久久久国产精品夜夜夜夜夜 | www.爱爱.com| 欧美极品少妇xxxxⅹ喷水 | 麻豆成人av | 午夜免费小视频 | 狠色综合7777夜色撩人 | 91亚洲国产成人久久精品麻豆 | 一本久道视频一本久道 | 国产精品久久久久久免费观看 | 99re免费视频精品全部 | 91在线视频网址 | 87福利视频 | 热re99久久精品国产99热 | 日本黄在线 | 97超碰总站 | 国产一级特黄毛片 | 性色av一区| 久久99久久99精品免观看粉嫩 | 台湾av在线播放 | 精品无码人妻一区二区免费蜜桃 | 91精品国产综合久久久久久久 | 成人av片在线观看 | 久久9热| 国产一级片av | 娇小6一8小毛片 | 黄wwwww | 国产偷亚洲偷欧美偷精品 | 亚洲最大视频网 | 久久久久久久 | 综合国产视频 | 一区二区三区视频网 | 亚洲久久在线 | 极品美女一区二区三区 | 中文字幕在线观看视频一区二区 | 黑人一级黄色片 | 久久成人乱码欧美精品一区二区 | 久久影院午夜理论片无码 | 国产1区2区在线观看 | 在线不卡的av | 精品国产三级 | 欧美成人精品欧美一级乱 | 色中色综合网 | 女人黄色片| 婷婷亚洲五月 | 麻豆精品 | 亚洲三级影视 | 六月激情网| 国内精品久久久久久久久久久 | 亚洲综合久久av | 亚洲天堂一区在线观看 | 免费观看全黄做爰的视频 | 不卡一区二区在线观看 | 亚洲裸体视频 | 色妞视频 | 草草影院一区二区三区 | 久久精品视频免费看 | 中文字幕第4页 | 黄色不卡 | 日韩精品一区中文字幕 | 亚洲www.|