我在为给定的 nHibernate 映射文件(nHibernate 1.2)制作 HQL 时遇到了一些麻烦。这个SQL Fiddle示例显示了我想要的表结构和结果。基本上,我会传递一个管辖权,我想要所有没有管辖权或特定管辖权的标题。当前流程将所有内容拉回并在代码中过滤;我正在努力改进它,以便它在 SQL 级别进行过滤。
映射文件看起来与此非常相似。
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
assembly="MyApp.Business"
namespace="Ap.Bus.Entity"
default-access="field.camelcase-underscore"
default-cascade="save-update" >
<class name="Titles" table="dbo.Titles" mutable="true" lazy="true">
<!--Primary Key-->
<id column="TitleID" name="Id" unsaved-value="0">
<generator class="identity">
</generator>
</id>
<property column="TITLE" name="Title"/>
<property column="Enabled" name="Enabled" />
<bag name="Jurisdictions" table="dbo.Jurisdictions" lazy="false" cascade="none">
<key column="TitleID" />
<many-to-many class="Ap.Shared.Jurisdiction, Ap.Shared" column="JurisdictionID"/>
</bag>
</class>
我尝试了很多不同的 HQL,但当我开始加入司法管辖区时,我永远无法让它发挥作用。当仅返回已启用的标题而没有加入时,它正在工作。
那么,我该如何编写 HQL 来实现这一点呢?