国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

hibernate學習筆記(四)

2019-11-14 23:45:07
字體:
來源:轉載
供稿:網友
hibernate學習筆記(四)

  學習hibernate很關鍵的一個地方就是關聯映射,今天我們來扒啦扒拉hibernate映射關系中的多對一單向和一對多單向。

  首先來說一下多對一單向,也就是N-->1,多對一的例子在生活中還是很常見的吧,比如多個人住在一個地方,多個學生在一個班級,所謂的多對一就是通過多的一方能夠找到

一得一方,既然是單向的,那么肯定是一是找不到多的,什么意思呢?就是知道張三是一年級一班的,但是不知道一年級一班有張三這個人,如果我非要知道怎么辦呢?涼拌唄,這個。。開個玩笑啊,如果想通過班級知道學生,那么肯定的是雙向的,或者是一對多單向的。下面通過地址和人員的例子說一下單向多對一的關系:

既然是hibernate,那么肯定要有實體類了,我是采用注解的方式實現的,首先是人員的實體類,也就是多的一段,下面上圖:

下面是對應的set/get方法,我就不再詳細說了,注解的意思里面注釋也有,也不再贅述。

下面是地址對應的實體類。

由于是多對一單向的,所以在一得一端不必做過多的設置,只需要把實體類需要的基本屬性給了就可以了。

然后我們來做個測試,工具是JUNIT4,不廢話,上圖:

運行的結果是什么呢?我們可以看一下:

我們可以看到ibernate向數據庫中添加了兩條地址信息,然后修改人員表的地址信息。有人會說你這里是你這里分別執行了session.persist(a);和session.persist(a1);才保存成功,那我想直接保存一個人員的時候就把地址給保存進去,那么怎么辦呢?按照上面的配置也是可以實現的哦,

在這我把這兩個保存地址的給注釋掉了,運行結果怎么樣呢?

我們可以看到運行結果是一模一樣的哦,這是因為有了@Cascade(org.hibernate.annotations.CascadeType.ALL)這個配置,如果把這個去掉可是會報錯的,具體的看下:

可以看到JUNIT報錯了,具體的意思就是在非空的屬性指向個瞬時的對象,瞬時的 對象必須保存在這個操作中。主要就是cascade的作用了,cascade有五個屬性值,分別對應不同的操作,大家看一下就可以了。

上面的操作是在人員的表中添加一個地址的ID字段,不會再生成一個第三方表,如果想生成第三方表怎么設置呢?

其他的操作沒什么不同的,下面上圖:

注釋上說的也差不多了,大家也可以采用配置文件的方式來寫,本來想一對多單向和多對一單向一起說的,但是這個太長了,再開一個來寫一對多單向的,這篇暫時就這樣了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 栖霞市| 沁阳市| 祁连县| 连江县| 红桥区| 石泉县| 连平县| 鄂伦春自治旗| 衡东县| 苗栗县| 修武县| 榆林市| 门头沟区| 茶陵县| 庆阳市| 墨脱县| 博白县| 峨边| 巴彦淖尔市| 杭锦旗| 文昌市| 大渡口区| 望城县| 山阴县| 平武县| 汶川县| 梁平县| 贵港市| 马关县| 神木县| 博罗县| 中牟县| 宜兴市| 遵化市| 定安县| 新化县| 合肥市| 江门市| 威远县| 绥芬河市| 佛教|