Nhibernate说明:
识别器(discriminator)
在"一棵对象继承树对应一个表"的策略中,
type="discriminator_type"(2)
force="true|false"(3)
insert="true|false" (4)
/>
(1) column (可选 - 默认为 class) 识别器字段的名字
(2) type (可选 - 默认为 String) 一个NHibernate字段类型的名字
(3) force (可选 - 默认为 false) "强制"NHibernate指定允许的识别器值,就算取得的所有实例都是根类的。
(4) insert (可选 - 默认为 true) 当识别器是被映射的组件的标识符的一部分时设置为false。
标识器字段的实际值是根据
force属性仅仅是在表包含一些未指定应该映射到哪个持久化类的时候才是有用的。这种情况不是经常会遇到。
转一下这篇,From:http://ttitfly.javaeye.com/blog/162766
关键字: hibernate中discriminator
tbl_user 是一张表。User是它一个po,NormalUser也是它的一个po,NormalUser继承于User,那么将User和NormalUser持久到数据库的tbl_user中,tbl_user是怎么区分的呢?tbl_user中有一个字段type,它是来区分的。
来看他们的映射文件:
Java代码
discriminator-value="2">
Java代码
discriminator-value="1">
当你用User时hibernate就会将tbl_user的type的值置为2,当你用NormalUser时hibernate就会将tbl_user的type的值置为1
这就区分了,而且不用你手动操作

