在"一棵对象继承树对应一个表"的策略中,<discriminator>元素是必需的, 它定义了表的鉴别器字段。鉴别器字段包含标志值,用于告知持久化层应该为某个特定的行创建哪一个子类的实例。 如下这些受到限制的类型可以使用: string, character, integer, byte, short, boolean, yes_no, true_false.
<discriminator
column="discriminator_column"
type="discriminator_type"
force="true|false"
insert="true|false"
formula="arbitrary sql expression"
/>
|
| |
|
| |
|
| |
|
| |
|
|
鉴别器字段的实际值是根据<class>和<subclass>元素中 的discriminator-value属性得来的。
force属性仅仅在这种情况下有用的:表中包含没有被映射到持久化类的附加辨别器值。 这种情况不会经常遇到。
使用formula属性你可以定义一个SQL表达式,用来判断一个行数据的类型。
<discriminator
formula="case when CLASS_TYPE in ('a', 'b', 'c') then 0 else 1 end"
type="integer"/>
本文介绍了在对象继承树对应一个表的策略中,如何使用<discriminator>元素定义表的鉴别器字段。解释了不同属性如column、type、force等的作用,并通过示例展示了如何设置SQL公式进行类型判断。
1775

被折叠的 条评论
为什么被折叠?



