【问题标题】:Nhibernate - query with join table without relationshipNhibernate - 使用没有关系的连接表查询
【发布时间】:2009-03-10 02:06:23
【问题描述】:

我想知道是否有人尝试在 NHibernate 中这样做。

我有以下表格(简化版)。

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

CITY_TL: 城市 (varchar2) (PK) 省 (varchar2) (PK) lang (char (2)) (PK)

地点: 位置 (varchar2) (PK) 其他一些专栏。

如您所见,CITY 和 LOCATION 之间没有关系。 但是,它是以 CITY.Province 可以等于的方式设置的 位置。位置。所以,我可以执行这样的查询:

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

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

这是我的 CITY 和 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 中?

【问题讨论】:

  • 缺少City类的映射

标签: nhibernate join nhibernate-mapping


【解决方案1】:

您可以使用笛卡尔积将它们与 hql 或 SQL 连接起来:

Here

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-23
    • 2023-04-06
    • 2015-03-10
    • 2019-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多