Hibernate¶ÁÊé±Ê¼Ç-----HibernateµÄ¹ØÁªÓ³ÉäÖ®N-1¹ØÁªÓ³Éä(Ò»)

2014-11-24 08:31:50 ¡¤ ×÷Õß: ¡¤ ä¯ÀÀ: 3

ÎÒÃÇËùÉú»îµÄÊÀ½çºÜÉÙÓÐÊÂÎïÊǹÂÁ¢´æÔڵģ¬Ã¿¸öÊÂÎï±ØÈ»»á´æÔÚ×ÅÓëËüÏà¹ØÁªµÄÊÂÎï¡£ÔÚÃæÏò¶ÔÏóÉè¼Æµ±ÖУ¬¹ØÁª¹ØÏµÊǷdz£ÖØÒªµÄ¡£¹ØÁª¹ØÏµÒ»°ã¿ÉÒÔ·ÖΪÒÔÏÂÁ½ÖÖ£º
µ¥Ïò¹ØÏµ£ºÖ»Ðèµ¥Ïò·ÃÎʹØÁª¶Ë
Ë«Ïò¹ØÏµ£º¹ØÁªµÄÁ½¶Ë¶¼¿ÉÒÔ»¥Ïà·ÃÎÊ
µ¥Ïò¹ØÏµ¿É·ÖΪ£º1¡ªN¡¢1¡ª1¡¢N¡ª1¡¢N¡ªN
Ë«Ïò¹ØÏµ¿É·ÖΪ£º1¡ª1 ¡¢1¡ªN¡¢N¡ªN
ÏÂÃæ¾ÍÉÏÃæµÄÿÖÖ¹ØÁªÓ³Éä·Ö±ð½²½â£º
Ò»¡¢N¡ª1¹ØÁªÓ³Éä
1¡¢µ¥ÏòN¡ª1¹ØÁª
1.1¡¢ÎÞÁ¬½Ó±íµÄN-1¹ØÁª£¨»ùÓÚÍâ¼üµÄN-1¹ØÁª£©
¶ÔÓÚµ¥ÏòµÄN¡ª1¹ØÁª¶øÑÔÖ»ÐèÒª´ÓNµÄÒ»¶Ë¿ÉÒÔ·ÃÎÊ1µÄÒ»¶Ë¡£ÎªÁËÈÃÕâ¸öÁ½¸ö³Ö¾Ã»¯ÀàÖ§³ÖÕâÖÖ¹ØÁªÓ³É䣬³ÌÐòÓ¦¸ÃÔÚNµÄÒ»¶ËµÄ³Ö¾Ã»¯ÀàÖÐÔö¼ÓÒ»¸öÊìϤ£¬¸ÃÊôÐÔÒýÓÃ1Ò»¶ËµÄ¹ØÁªÊµÌå¡£
Á½¸ö¹ØÁªÊôÐÔÈçÏ£¨ÒÔÔ±¹¤ºÍ²¿ÃÅÖ®¼äµÄ¹ØÏµÎªÀý£©£º
Employee£º
[java]
public class Employee {
private Integer id;
private String name;
private Department department; //¹ØÁªÊôÐÔ

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Department getDepartment() {
return department;
}

public void setDepartment(Department department) {
this.department = department;
}

}
Department£º
[java]
public class Department {
private Integer id;
private String name;
private Set employees;

public Integer getId() {
return id;
}

public void setId(Integer id) {
this.id = id;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public Set getEmployees() {
return employees;
}

public void setEmployees(Set employees) {

this.employees = employees;
}

}
Employee¶ËÔö¼ÓÁËDepartmentÊôÐÔ£¬¸ÃÊôÐÔ²¢²»ÊÇÒ»¸öÆÕͨµÄ×é¼þÊôÐÔ£¬¶øÊÇÒýÓÃÁíÒ»¸ö³Ö¾Ã»¯ÀàµÄÀà¡£HibernateʹÓÃÔªËØÓ³ÉäN¡ª1µÄ¹ØÁªÊµÌ壬ֱ½Ó²ÉÓÃÔªËØÀ´Ó³É乨ÁªÊµÌ彫»áÔÚNµÄÒ»¶ËµÄÊý¾Ý±íÖÐÔö¼ÓÒ»¸öÍâ¼ü£¬ÓÃÓÚ²ÎÕÕÖ÷±í¼Ç¼¡£
ÏÂÃæÎªÁ½¸öʵÌåµÄÓ³ÉäÎļþ£º
Employee.hbm.xml
ÔÚÕâ¸öÓ³ÉäÎļþÖÐÐèÒªÓÃÀ´Íê³É¹ØÁªÓ³Éä
[html] view plaincopyprint











Department.hbm.xml
[html]










ͨ¹ýÉÏÃæµÄÓ³Éäºó£¬¾Í¿ÉÒÔʹÓÃÈçÏ´úÂëÀ´±£´æEmployeeºÍDepartmentʵÌåÁË¡£
[java] view plaincopyprint
//Ôö¼Ó
static void add() {
Session s = null;
Transaction tx = null;
try {
s = HibernateUtil.getSession();
tx = s.beginTransaction();

Department depart = new Department(); //....1
depart.setName("×éÖ¯²¿");

Employee emp = new Employee();
//¶ÔÏóÄ£ÐÍ£º½¨Á¢Á½¸ö¶ÔÏóµÄ¹ØÁª¹ØÏµ
emp.setDepartment(depart); //...2
emp.setName("ÌÀÃÃÍ®");

s.save(depart); //...3
s.save(emp); //...4

tx.commit();
} finally {
if (s != null)
s.close();
}
}
´úÂë·ÖÎö£º
µ±´úÂëÔËÐе½...1µÄʱºò»á´´½¨Ò»¸ö˲̬µÄDepartment¶ÔÏó¡£µ±³ÌÐòÔËÐе½...3ºÍ...4µÄʱºò£¬ÏµÍ³¾Í»á·Ö±ð±£´æDepartment¶ÔÏóºÍEmployee¶ÔÏó¡£»á²úÉúÈçÏÂÁ½ÌõSQLÓï¾ä£º
[sql]
Hibernate: insert into department (departmentName) values ( )

e: insert into employee (employeeName, departmentID) values ( , )
...2ÕâÌõÓï¾ä·Ç³£ÖØÒª£¬ÒòΪËüÊǽ¨Á¢DepartmentºÍEmployeeÁ½¸ö¶ÔÏóµÄ¹ØÁª¹ØÏµ¡£Ã»ÓÐÕâÌõÓï¾äÊÇÎÞ·¨½¨Á¢Á½¸ö¶ÔÏóµÄ¹ØÏµ¡£
ÔÚÕâÀïÎÒÃǽ«...3Óï¾äºÍ...4Á½ÌõÓï¾ä½»»»Î»Öá£ÕâʱÔËÐоͻá²úÉúÈýÌõSQLÓï¾ä¡£µ±...3µÄʱºò£¬departmentID²åÈëµÄʱºòΪ¿Õ£¬Ö»Óе±³Ö¾Ã»¯Department¶ÔÏóºó£¬ÏµÍ³¾Í»á½«departmentIDÐÞ¸ÄΪÏà¶ÔÓ¦µÄÖµ¡£ÈçÏ£º
[sql]
Hibernate: insert into employee (employeeName, departmentID) values ( , )

Hibernate: insert into de