向左走,向右走。。。
永远不回头
BlogJava
首页
新随笔
新文章
联系
聚合
管理
posts - 16,comments - 17,trackbacks - 0
<
2008年4月
>
日
一
二
三
四
五
六
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
网 名:
非飞
性 别:
男
籍 贯:
广西桂林
Q Q:
8038052
MSN:
towerhe@hotmail.com
Email:
towerhe@gmail.com
爱 好:
爱好广泛,不在此处做详细说明。
常用链接
我的随笔
我的评论
我的参与
最新评论
留言簿
(3)
给我留言
查看公开留言
查看私人留言
随笔分类
(14)
Flash相关技术(1)
JAVA 相关技术(6)
JavaScript相关技术(2)
生活琐事(3)
软件工程(2)
随笔档案
(16)
2005年5月 (2)
2005年4月 (4)
2005年3月 (6)
2005年2月 (2)
2005年1月 (2)
文章分类
(2)
JMX(2)
文章档案
(3)
2005年4月 (1)
2005年2月 (2)
收藏夹
(3)
JAVA(3)
友情链接
杨彦
陶文
文章
JMX相关文章
搜索
最新评论
1. re: 回实验室上班
兄台,好久不更新, 这就是你的不对了!我等着你写博客啊
--YZ
2. re: JMX设计模式之MBeanWriteToLog模式
good
--hellochen
3. re: Hibernate中的继承映射
错别字也太多了点吧
--无可奈何花落去
4. re: 程序员应该怎么过生活???
程序员很苦,但有个老姐就很幸福了!哈哈.....
--dwj
5. re: JMX设计模式之MBeanWriteToLog模式
好!
--王琼
6. re: JavaScript读取服务器端的xml
很好,谢谢~
--lovelywcm
7. re: 各层共享使用PO的代价
我的观点,大部分实体对象只要vo、po重用就可以了,只有vo、po差距较大的地方才分开,这样就做到了简洁性和可扩展性的良好折中。
--CowNew开源团队
8. re: 各层共享使用PO的代价
都TMD的人云亦云,很少有说PO变动之后,VO不变动的,既然两个都要动,何不只动一个?
--TMD
9. re: 程序员应该怎么过生活???
我很按时睡觉的都是 晚上1:00
--smilerain
10. re: NIO中Selector的工作原理
sorry, 我说的是SelectionKey.interestOps
--zhangwei
阅读排行榜
1. NIO中Selector的工作原理 (17351)
2. 通过mx4j实现JMXConnectorServer和JMXConnector(5682)
3. JavaScript读取服务器端的xml(4702)
4. Hibernate中的继承映射(4585)
5. 使用JavaScript来实现页面间的参数传递(4086)
6. Linux下JNI调用(3340)
7. 用了一下flash的反编译(2693)
8. 设计模式精解 [读书笔记](2623)
9. JMX设计模式之MBeanWriteToLog模式(2450)
10. 各层共享使用PO的代价(2439)
11. 组织团队开发项目的方式(2295)
12. JMX设计模式之MBeanForAppConfig模式(2217)
13. 程序员应该怎么过生活???(2106)
14. 看《难兄难弟》有感要说呀!(1948)
15. 一天的工作终于结束了。。。(1552)
16. 回实验室上班(620)
评论排行榜
1. NIO中Selector的工作原理 (3)
2. 使用JavaScript来实现页面间的参数传递(3)
3. 程序员应该怎么过生活???(3)
4. 各层共享使用PO的代价(2)
5. JMX设计模式之MBeanWriteToLog模式(2)
6. Hibernate中的继承映射(1)
7. 回实验室上班(1)
8. JavaScript读取服务器端的xml(1)
9. 用了一下flash的反编译(1)
10. Linux下JNI调用(0)
Hibernate中的继承映射
Hibernate的继承映射包含了三种不同的策略:
每簇类使用一个表;
每个子类一个表;
每个具体内一个表(有限制)。
假设我们有四个类Animal,Dog,Cat,其代码如下:
文件名:Animal.java
class
Animal
{
private
String identifier;
private
String name;
private
String category;
//
setter and getter
}
文件名:Dog.java
class
Dog extends Animal
{
private
String
//
setter and getter
}
文件名:Cat.java
class
Cat extends Animal
{
private
String
//
setter and getter
}
每簇类使用一个表
使用每簇类使用一个表的策略时,有一个限制就时子类不能有NOT NULL,映射文件为:
文件名:Animal.hbm.xml
<
class
name
="Animal"
table
="TB_ANIMAL"
>
<
id
name
="identifier"
type
="string"
column
="IDENTIFIER"
>
<
generator
class
="uuid.hex"
/>
</
id
>
<
discriminator
column
="ANIMAL_TYPE"
type
="string"
/>
<
property
name
="name"
column
="NAME"
type
="string"
/>
<
subclass
name
="Dog"
discriminator-value
="DOG"
>
</
subclass
>
<
subclass
name
="Cat"
discriminator-value
="CAT"
>
</
subclass
>
</
class
>
每个子类一个表
使用每个子类一个表的策略时,可以使用一个映射文件实现,也可以分成多个映射文件来实现。每个子类一个映射文件的情况:
文件名:Animal.hbm.xml
<
class
name
="Animal"
table
="ANIMAL"
>
<
id
name
="identifier"
column
="IDENTIFIER"
type
="string"
>
<
generator
class
="uuid.hex"
/>
</
id
>
<
property
>
</
class
>
文件名:Dog.hbm.xml
<
joined-subclass
name
="Dog"
table
="DOG"
extends
="Animal"
>
<
key
column
="DOG_ID"
/>
</
joined-subclass
>
文件名:Cat.hbm.xml
<
joined-subclass
name
="Cat"
table
="CAT"
extends
="Cat"
>
<
key
column
="CAT_ID"
/>
</
joined-subclass
>
每个子类一个表的策略实际上一种one-to-one的映射。
每个具体内一个表(有限制)
使用每个具体内一个表(有限制)策略时,每一个子类的映射文件将要包含所有父类中的属性,映射文件:
文件名:Dog.hbm.xml
<
class
name
="Dog"
table
="DOG"
>
<
id
name
="identifier"
column
="IDENTIFIER"
type
="string"
>
<
generator
class
="uuid.hex"
/>
</
id
>
<
property
name
="name"
column
="NAME"
type
="string"
/>
</
class
>
文件名:Cat.hbm.xml
<
class
name
="Cat"
table
="CAT"
>
<
id
name
="identifier"
column
="IDENTIFIER"
type
="string"
>
<
generator
class
="uuid.hex"
/>
</
id
>
<
property
name
="name"
column
="NAME"
type
="string"
/>
</
class
>
posted on 2005-03-02 22:31
非飞
阅读(4585)
评论(1)
编辑
收藏
所属分类:
JAVA 相关技术
FeedBack:
#
re: Hibernate中的继承映射
2008-04-26 11:15 |
无可奈何花落去
错别字也太多了点吧
回复
更多评论
新用户注册
刷新评论列表
只有注册用户
登录
后才能发表评论。
网站导航:
博客园
IT新闻
知识库
C++博客
博问
管理
相关文章:
JMX设计模式之MBeanWriteToLog模式
JMX设计模式之MBeanForAppConfig模式
NIO中Selector的工作原理
Linux下JNI调用
Hibernate中的继承映射
通过mx4j实现JMXConnectorServer和JMXConnector