Nhibernate-使用没有关系的联接表查询 [英] Nhibernate - query with join table without relationship

查看:116
本文介绍了Nhibernate-使用没有关系的联接表查询的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想知道是否有人试图在NHibernate中做到这一点.

I was wondering if anyone has tried to do this in NHibernate.

我有下表(简化版).

城市: 城市(varchar2)(PK) 省(varchar2)(PK)

CITY: city (varchar2) (PK) province (varchar2) (PK)

CITY_TL: 城市(varchar2)(PK) 省(varchar2)(PK) lang(字符(2))(PK)

CITY_TL: city (varchar2) (PK) province (varchar2) (PK) lang (char (2)) (PK)

位置: 位置(varchar2)(PK) 其他一些列.

LOCATION: location (varchar2) (PK) some other column.

如您所见,CITY和LOCATION之间没有任何关系. 但是,它的设置方式使CITY.Province可以等于 位置.因此,我可以执行如下查询:

As you can see, there are no relationship between CITY and LOCATION. However, it was set up in a way that CITY.Province can equal to LOCATION.Location. So, I can execute a query like this:

选择c.* 从城市c 在c.city = ctl.city上加入city_tl ctl 在l.location = c.province上加入位置l

select c.* from city c join city_tl ctl on c.city = ctl.city join location l on l.location = c.province

我该如何在NHibernate中做到这一点?这甚至可行吗?

How do I do that in NHibernate? Is this even doable?

这是我的CITY和LOCATION映射文件

Here is my mapping files for CITY and LOCATION

城市:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="NHDAL"
                   namespace="NHDAL.Domain">

  <class name="CityTL" table="CITY_TL">
    <composite-id>
      <key-property column="CITY" type="String" name="Name"/>
      <key-property column="PROVINCE" type="String" name="Province"/>
      <key-property column="LANG" type="String" name="Lang" />
    </composite-id>

    <timestamp
        column="MODIFY_DATE"
        name="ModifyDate"
        access="property"
        unsaved-value="null"/>

    <property name="ProvinceDescription" column="PROVINCE_TL"
type="String" not-null="true" />
    <property name="Description" column="CITY_TL" type="String" not-
null="true"/>
    <property name="SortOrder" column="SORT_ORDER" type="Int32" not-
null="false"/>

    <many-to-one name="City" class="City">
      <column name="CITY"/>
      <column name="PROVINCE"/>
    </many-to-one>
  </class>

</hibernate-mapping>

位置:

<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2"
                   assembly="NHDAL"
                   namespace="NHDAL.Domain">

  <class name="Location" table="LOCATION">
    <id column="LOCATION" name="Name">
      <generator class="assigned" />
    </id>

    <timestamp
        column="MODIFY_DATE"
        name="ModifyDate"
        access="property"
        unsaved-value="null"/>

      </class>

</hibernate-mapping>

有人可以对此有所启发,并告诉我该查询该怎么做 看起来像NHibernate?

Can someone shine some light on this and tell me what should the query look like in NHibernate?

推荐答案

不相关的实体,您可以使用笛卡尔积将它们与hql或SQL结合在一起:

Unrelated entities you can join them with hql or SQL using cartesian product:

此处

这篇关于Nhibernate-使用没有关系的联接表查询的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆