在我的域模型中,我有一个抽象类CommunicationChannelSpecification,它有子类,如FTPChannelSpecification,EMailChannelSpecification和WebserviceChannelSpecification.现在我想创建一个HQL查询,其中包含一个where子句,它将结果缩小到某些类型的通道规范.例如(用简单的英语)选择其类型出现在集合{FTPChannelSpecification,WebserviceChannelSpecification}中的所有CommunicationChannelSpecifications.
如何在HQL中实现这一目标?我正在使用NHibernate 2.0.1和每个子类的表继承映射策略...
谢谢!
帕斯卡尔
在NHibernate中并不积极,但在Hibernate中,有两个特殊的属性总是引用id和class.所以,对于你的特殊情况,我会这样做
from CommunicationChannelSpecifications spec where spec.class in (?)