首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >nHibernate -如何对连接的数据执行HQL

nHibernate -如何对连接的数据执行HQL
EN

Stack Overflow用户
提问于 2012-11-21 19:29:19
回答 1查看 282关注 0票数 1

我在为一个给定的nHibernate映射文件(nHibernate 1.2)制作HQL时遇到了一些问题。这个SQL Fiddle示例显示了我想要的表结构和结果。基本上,我会通过一个司法辖区,我想要所有没有司法辖区或那个特定司法辖区的标题。当前进程提取所有内容并在代码中进行过滤;我正在努力改进这一点,以便在SQL级别进行过滤。

映射文件看起来与此非常相似。

代码语言:javascript
复制
<?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来实现这一点呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-21 20:25:11

代码语言:javascript
复制
select t
from Title t left outer join t.Jurisdictions as j
where j is null or j = :someJurisdiction

也许你应该在上面的最后两个"j“后面加上".JurisdictionID”。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13492339

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档