具备相同的逻辑组件,即可以复用的一个类
public class Boss {
private Integer id;
private String name;
private String secretary;
private Contact contact;
}
public class Employee {
private Integer id;
private String name;
private String employeeNo;
private Contact contact;
}
public class Contact {
private String cellPhone;
private String email;
}
<?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="com.lohamce.hibernate">
<class name="Employee" table="t_employee">
<id name="id">
<generator class="native" />
</id>
<property name="name" />
<property name="employeeNo" />
<component name="contact">
<property name="cellPhone" />
<property name="email" />
</component>
</class>
</hibernate-mapping>
在保存的时候不需要save Contact,因为Contact是逻辑组件,并不是实体类(此处的实体为POJO + hbm.xml)
@Test
public void testSaveEmployee(){
Session session = null;
Transaction tx = null;
try{
session = HibernateUtil.openSession();
tx = session.beginTransaction();
Employee emp = new Employee();
emp.setName("Scott Wu");
Contact contact = new Contact();
contact.setCellPhone("999");
contact.setEmail("Scott.wu@active.com");
emp.setContact(contact);
session.save(emp);
tx.commit();
} catch (Exception e){
e.printStackTrace();
tx.rollback();
} finally {
HibernateUtil.close(session);
}
}