Hibernate_component映射


具备相同的逻辑组件,即可以复用的一个类

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);
		}
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值