最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个表”的策略来说,就需要使用<subclass>定义。
每个子类都应该定义它自己的持久化属性和子类。 <version> 和<id> 属性可以从根父类继承下来。在一棵继承树上的每个子类都必须定义一个唯一的discriminator-value。如果没有指定,就会使用Java类的全限定名。
可以在单独的映射文件中,直接在hibernate-mapping下定义subclass,union-subclass和joined-subclass映射。这样你只要增加一个新的映射文件就可以继承一棵类继承树。你必须在子类的映射中指定extends 属性来指定已映射的超类。注意:以前,这个特性使得映射文件的顺序变得很重要。从Hibernate3开始,当使用extends关键字的时候,映射文件的次序便不重要了。而在单一映射文件中,依旧需要保持将超类定义在子类之前这样的次序
字段摘要 | |
---|---|
String |
abstract
|
String |
batch-size
|
String |
discriminator-value
一个用于区分每个独立的子类的值。 |
String |
dynamic-insert
|
String |
dynamic-update
|
String |
entity-name
|
String |
extends
|
String |
lazy
设置为 lazy="false" 禁止使用延迟抓取 |
String |
name
子类的全限定名。 |
String |
node
|
String |
persister
|
String |
proxy
指定一个类或者接口,在延迟装载时作为代理使用。 |
String |
select-before-update
|
方法摘要 |
---|
子事物摘要 | |
---|---|
|
any
|
|
array
|
|
bag
|
|
component
<component>元素把子对象的一些元素与父类对应的表的一些字段映射起来。 然后组件可以定义它们自己的属性、组件或者集合。参见后面的“Components”一章。 |
|
dynamic-component
|
|
idbag
|
|
join
使用<join> |
|
list
|
|
loader
|
|
many-to-one
|
|
map
|
|
meta
|
|
one-to-one
|
|
primitive-array
|
|
property
|
|
query
|
|
resultset
|
|
set
|
|
sql-delete
|
|
sql-insert
|
|
sql-query
|
|
sql-update
|
|
subclass
最后,多态持久化需要为父类的每个子类都进行定义。对于“每一棵类继承树对应一个表”的策略来说,就需要使用<subclass>定义。 |
|
synchronize
|
|
tuplizer
|
字段详细信息 |
---|
方法详细信息 |
---|
子事物详细信息 |
---|