免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開(kāi)APP
userphoto
未登錄

開(kāi)通VIP,暢享免費(fèi)電子書(shū)等14項(xiàng)超值服

開(kāi)通VIP
Eclipse快速上手Hibernate--7.關(guān)聯(lián)映射(一對(duì)多)(2)

Eclipse快速上手Hibernate--7. 關(guān)聯(lián)映射(一對(duì)多) (2)

    上篇文章《Eclipse快速上手Hibernate--7. 關(guān)聯(lián)映射(一對(duì)多) (1)》已經(jīng)說(shuō)了一對(duì)多的單向關(guān)聯(lián),這次還是用Room和User類(lèi)來(lái)說(shuō)明多對(duì)一的單向關(guān)聯(lián),只不過(guò)這次關(guān)聯(lián)關(guān)系是由User對(duì)象維持的。
 
  由于有了上篇文章的基礎(chǔ),只要做些修改就可以了。
 
 
· 修改Room類(lèi),僅僅是刪除了關(guān)聯(lián)User類(lèi)的代碼。

Room.java

package javamxj.hibernate.association.one2many;/** * @hibernate.class table = "T_Room" */public class Room {	private Long id;	private String address;		/**	 * @hibernate.id	 *	column="ID"	 *	generator-class="hilo" 	 *	unsaved-value="null"	 */	public Long getId() {		return id;	}	public void setId(Long id) {		this.id = id;	}		/**	 * @hibernate.property length = "24"	 */	public String getAddress() {		return address;	}		public void setAddress(String address) {		this.address = address;	}	}
 
 
 
·  同樣修改User類(lèi),也是僅僅添加了關(guān)聯(lián)Room類(lèi)的代碼。

User.java

package javamxj.hibernate.association.one2many;/** * @hibernate.class table = "T_User" */public class User {	private Long id;	private String name;	private Room room;		/**	 * @hibernate.id	 *	column="ID"	 *	generator-class="hilo" 	 *	unsaved-value="null"	 */	public Long getId() {		return id;	}	public void setId(Long id) {		this.id = id;	}	/**	 * @hibernate.property length = "24"	 */	public String getName() {		return name;	}	public void setName(String name) {		this.name = name;	}		/**	 * @hibernate.many-to-one	 * 	cascade="save-update" 	 *  column="Room_ID"	 */	public Room getRoom() {		return room;	}	public void setRoom(Room room) {		this.room = room;	}	}
·  在最后幾行中指明了引用Room類(lèi)的方式,其中@hibernate.many-to-one 表明在T_User表定義了外鍵Room_ID。通過(guò)這個(gè)外鍵來(lái)反映多對(duì)一關(guān)系。
 
 
 
 
 
·  看看Room類(lèi)的映射文件中的有關(guān)多對(duì)一關(guān)聯(lián)部分:

      <many-to-one
            name="room"
            class="javamxj.hibernate.association.one2many.Room"
            cascade="save-update"
            outer-join="auto"
            update="true"
            insert="true"
            access="property"
            column="Room_ID"
        />

· 這次級(jí)聯(lián)關(guān)系是 cascade="save-update", 當(dāng)刪除多的一方中的一個(gè)對(duì)象時(shí),其所關(guān)聯(lián)的一的一方并不能同時(shí)被刪除,因?yàn)樗锌赡苓€關(guān)聯(lián)著多的一方中的其它對(duì)象,所以這次不用 cascade="all" 了。

 

     
· 修改Demo.java文件,User通過(guò)級(jí)聯(lián)來(lái)更新Room。

Demo.java

/* * Hibernate - 關(guān)聯(lián)(Association)映射(一對(duì)多) * 創(chuàng)建日期 2005-4-27 * @author javamxj(分享java快樂(lè)) * @link  Blog: htpp://blog.csdn.net/javamxj/  *              htpp://javamxj.mblogger.cn  */package javamxj.hibernate.association.one2many;import net.sf.hibernate.*;import net.sf.hibernate.cfg.*;public class Demo {	public static void main(String[] args) throws HibernateException {						Room room1 = new Room();		room1.setAddress("科研007");		Room room2 = new Room();		room2.setAddress("銷(xiāo)售001");		User user1 = new User();		user1.setName("張三");		user1.setRoom(room1);		User user2 = new User();		user2.setName("李四");		user2.setRoom(room1);		User user3 = new User();		user3.setName("王二");		user3.setRoom(room2);		SessionFactory sf= new Configuration().configure().buildSessionFactory();		Session session = sf.openSession();		Transaction tx = session.beginTransaction();				session.save(user1);		session.save(user2);		session.save(user3);				tx.commit();		session.close();		sf.close();	}}
 
 
 
 
·  然后同上面文章一樣,生成映射文件,生成表,執(zhí)行Demo,最后數(shù)據(jù)表中生成如下數(shù)據(jù): 
 
 
 
 
·  同時(shí),控制臺(tái)輸出如下:
  可以看到,多對(duì)一關(guān)聯(lián)相比一對(duì)多關(guān)聯(lián),只用了5條語(yǔ)句就完成了相同的操作結(jié)果。由于關(guān)聯(lián)關(guān)系由User對(duì)象維持的,每個(gè)User都對(duì)應(yīng)至一個(gè)Room。它首先存儲(chǔ)的是Room對(duì)象,在存儲(chǔ)User對(duì)象時(shí),因?yàn)閁ser已經(jīng)知道Room的存在,所以可以通過(guò)關(guān)聯(lián)字段Room_ID將User對(duì)象對(duì)Room對(duì)象的關(guān)系一并存儲(chǔ)在T_User表中了。
  
  這兩篇文章談?wù)摰亩际菃蜗蜿P(guān)聯(lián),如果Room類(lèi)和User類(lèi)存在雙向關(guān)聯(lián),又該如何呢?下篇文章見(jiàn)。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶(hù)發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)。
打開(kāi)APP,閱讀全文并永久保存 查看更多類(lèi)似文章
猜你喜歡
類(lèi)似文章
Eclipse快速上手Hibernate--7. 關(guān)聯(lián)映射(一對(duì)多) (1)
hibernate多對(duì)一關(guān)聯(lián)映射
Struts+Spring+Hibernate快速入門(mén)
Eclipse下Hibernate入門(mén)
Hibernate標(biāo)識(shí)符屬性(主鍵)生成策略全析
Hibernate—第二季many-one-many
更多類(lèi)似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服