1. 程式人生 > >many-to-one單向關聯對映

many-to-one單向關聯對映

Employee.java

package com.model;

public class Employee {
	private int id;
	private String name;
	private Department dept;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public Department getDept() {
		return dept;
	}
	public void setDept(Department dept) {
		this.dept = dept;
	}
	
}

Department.java
package com.model;

public class Department {
	private int id;
	private String name;
	public int getId() {
		return id;
	}
	public void setId(int id) {
		this.id = id;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	
}
Employee.hbm.xml
<?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">
<!-- ORM對映檔案 -->        
<hibernate-mapping package="com.model">
	<class name="Employee" table="employee">
		<id name="id" column="id">
			<generator class="native"></generator>
		</id>
		<property name="name" column="name"></property>
		<many-to-one name="dept" column="deptId"></many-to-one>
	</class>
	
</hibernate-mapping>

Department.hbm.xml
<?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">
<!-- ORM對映檔案 -->        
<hibernate-mapping package="com.model">
	<class name="Department" table="department">
		<id name="id" column="id">
			<generator class="native"></generator>
		</id>
		<property name="name" column="name"></property>
	</class>
	
</hibernate-mapping>

單元測試:

	@Test
	public void t(){
		Session session = HibernateUtil.getInstance().getSession();
		session.beginTransaction();
		
		/*Department d = new Department();
		d.setName("d1");
		session.save(d);
		Employee e = new Employee();
		e.setName("e1");
		e.setDept(d);
		session.save(e);*/

		Employee e = (Employee) session.get(Employee.class, 1);
		System.out.println(e.getDept().getName());
		
		
		
		session.getTransaction().commit();
		session.close();
	}