ÎÒÃÇËùÉú»îµÄÊÀ½çºÜÉÙÓÐÊÂÎïÊǹÂÁ¢´æÔڵģ¬Ã¿¸öÊÂÎï±ØÈ»»á´æÔÚ×ÅÓëËüÏà¹ØÁªµÄÊÂÎï¡£ÔÚÃæÏò¶ÔÏóÉè¼Æµ±ÖУ¬¹ØÁª¹ØÏµÊǷ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
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
return employees;
}
public void setEmployees(Set
}
}
Employee¶ËÔö¼ÓÁËDepartmentÊôÐÔ£¬¸ÃÊôÐÔ²¢²»ÊÇÒ»¸öÆÕͨµÄ×é¼þÊôÐÔ£¬¶øÊÇÒýÓÃÁíÒ»¸ö³Ö¾Ã»¯ÀàµÄÀà¡£HibernateʹÓÃ
ÏÂÃæÎªÁ½¸öʵÌåµÄÓ³ÉäÎļþ£º
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