Hibernate一对多或多对一映射(重点)

java代码

EMP类和Dept类省略。

EMP类里面维护一个Dept类

Dept类里面维护一个Set<EMP>的集合

package Demo;

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class App {
	public static SessionFactory sf;
	static{
		sf = new Configuration()
				.configure()
				.buildSessionFactory();
	}
    public static void main(String[] args) {
		Session session = sf.openSession();
		session.beginTransaction();
		//部门对象
		Dept dept = new Dept();
		dept.setDeptName("人事部");
		
		//员工对象
		EMP emp_zs = new EMP();
		emp_zs.setEmpName("王五");
		
		EMP emp_ls = new EMP();
		emp_ls.setEmpName("马六");
		
		/*dept.getEmps().add(emp_zs);
		dept.getEmps().add(emp_ls);
		session.save(emp_zs);
		session.save(emp_ls);
		session.save(dept);*/
		emp_zs.setDept(dept);
		emp_ls.setDept(dept);
		session.save(dept);
		session.save(emp_zs);
		session.save(emp_ls);
		session.beginTransaction().commit();
		session.close();
	}
}

XML-EMP部分

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Demo">
   <class name = "EMP" table ="t_EMP">
      <id name = "empId">
         <generator class="native" />
      </id>
      <property name="empName"></property>
      <property name="salary" type = "double"></property>
  
      <many-to-one name="dept" column="deptId" class="Dept"></many-to-one>
   </class>
</hibernate-mapping>

XML-Dept部分

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="Demo">
   <class name = "Dept" table = "t_Dept">
      <id name = "deptId">
         <generator class="native" />
      </id>
      <property name="deptName" length="20"></property>
      
      <set name = "emps" table="t_EMP">
         <key column="deptId"></key>
         <one-to-many class = "EMP"/>
      </set>
   </class>
</hibernate-mapping>

猜你喜欢

转载自blog.csdn.net/erchouchou/article/details/80874408