4

在我的域模型中,我有一个抽象类 CommunicationChannelSpecification,它有 FTPChannelSpecification、EMailChannelSpecification 和 WebserviceChannelSpecification 等子类。现在我想创建一个 HQL 查询,其中包含一个 where 子句,该子句将结果缩小到某些类型的通道规范。例如(用简单的英语)选择所有类型出现在集合 {FTPChannelSpecification, WebserviceChannelSpecification} 中的 CommunicationChannelSpecifications。

如何在 HQL 中实现这一点?我正在使用 NHibernate 2.0.1 和每个子类继承映射策略的表...

谢谢!

帕斯卡

4

2 回答 2

8

在 NHibernate 中不是正数,但是在 Hibernate 中,有两个特殊的属性总是引用 id 和 class。所以,对于你的特殊情况,我会做

from CommunicationChannelSpecifications spec where spec.class in (?)
于 2008-12-16T13:46:18.507 回答
0

在这种情况下,NHibernate 支持与 Hibernate 相同的语法。有关示例,请参见此处。

于 2008-12-17T03:07:08.203 回答