`

Hibernate:类继承的实现方式(二)--父子类各自一个表

阅读更多
将继承链中的各个类映射到数据库中的一个单独的表中

domain对象和测试代码同(一)


可以看到在关系模型中比较合理:Employee表中没有空字段,但是查询效率肯定会受影响


映射文件如下:


<?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="cn.itcast.hibernate.inherit2">

	<class name="Employee" table="employee" >
		<id name="id" unsaved-value="-1">
			<generator class="native" />
		</id>
		<property name="name"/>

		<joined-subclass name="Skiller" table="skiller">
			<key column="s_id"/>
			<property name="skill"/>
		</joined-subclass>
		
		<joined-subclass name="Driver" table="dirver">
			<key column="d_id"/>
			<property name="driverYears"/>
		</joined-subclass>
		
	</class>
</hibernate-mapping>


执行的sql语句如下:


Hibernate: insert into employee (name) values (?)
Hibernate: insert into employee (name) values (?)
Hibernate: insert into skiller (skill, s_id) values (?, ?)
Hibernate: insert into employee (name) values (?)
Hibernate: insert into dirver (driverYears, d_id) values (?, ?)
分享到:
评论
1 楼 Rod_johnson 2011-09-15  
学习了!真不错

相关推荐

Global site tag (gtag.js) - Google Analytics