Hibernate多对1

Hibernate多对一

 Many:

package com.domain;

public class Employee {
	private int id;
	private String name;
	private Department depart;
}

 

One:

package com.domain;

public class Department {
	private int id;
	private String name;
}

 

Employee.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.domain">
	<class name="Employee" discriminator-value="0">
		<id name="id">
			<generator class="hilo" />
		</id>

		<property name="name" unique="true" />
		<many-to-one name="depart" column="depart_id" />
	</class>
</hibernate-mapping>

 

Department.hbm.xml:

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC 
	"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
	"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.domain">
	<class name="Department">
		<id name="id">
			<generator class="native" />
		</id>
		<property name="name" />
	</class>
</hibernate-mapping>

 

 Many2One:

import org.hibernate.Session;
import org.hibernate.Transaction;

import com.dao.HibernateUitl;
import com.domain.Department;
import com.domain.Employee;

public class Many2One {
	public static void main(String[] args) {
		add();
	}

	static Department add() {
		Session s = null;
		Transaction tx = null;
		try {
			Department depart = new Department();
			depart.setName("depart name");

			Employee emp = new Employee();
			emp.setDepart(depart);// 对象模型:建立两个对象的关联
			emp.setName("emp name");

			s = HibernateUitl.getSession();
			tx = s.beginTransaction();
			s.save(depart);
			s.save(emp);
			tx.commit();
			return depart;
		} finally {
			if (s != null)
				s.close();
		}
	}
}