选择确切类的所有实体,但不是使用 NHibernate Criteria API 从该类派生的
我有两个类:Cat
和 DomesticCat
,它们扩展了 Cat
。
我想选择所有Cat
,但不选择任何DomesticCat
。如何使用 NHibernate 标准 API 来做到这一点?
I have two classes: Cat
and DomesticCat
, that extends Cat
.
I want to select all Cat
s, but no oneDomesticCat
. How to do it using NHibernate criteria API?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
class
是一个伪属性,表示类层次结构中实体的具体类型。它可以透明地与除隐式继承策略之外的任何继承策略一起使用。
class
is a pseudo-property that represents the concrete type of entities in a class hierarchy.It can be used transparently with any inheritance strategy except implicit.
这取决于实施。
例如,如果您有一个鉴别器列(假设
且DomesticCat
继承类通过值进行区分“domestic”
)您可以进行这样的查询(在这个特定示例中,Cat 抽象类还将 CatType 列映射到 CatType 字符串属性)
编辑并在 Criteria 表单中
您对 AnotherCat 的评论再次暗示:有一些方法可以在数据库级别区分实体。
well it depends on the implementation.
If for example, you have a discriminator column (lets say
<discriminator column="CatType" type="string"/>
and theDomesticCat
inheritor class discriminates with value"domestic"
) you could make an query like this(in this particular example the Cat abstract class also maps the CatType column to a CatType string property)
EDIT and in Criteria form
your comment about AnotherCat again implies that there is some way of discriminating between entities at the db level.