Nhibernate - 使用没有关系的连接表进行查询

2024-04-20

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

我有下表(简化版本)。

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

城市_TL: 城市 (varchar2) (PK) 省份 (varchar2) (PK) 郎(字符(2))(PK)

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

正如您所看到的,CITY 和 LOCATION 之间没有关系。 然而,它的设置方式 CITY.Province 可以等于 地点。地点。所以,我可以执行这样的查询:

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

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

这是我的城市和位置的映射文件

CITY:

<?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?


不相关的实体,您可以使用笛卡尔积通过 hql 或 SQL 将它们连接起来:

Here http://www.jumpingbean.co.za/blogs/mark/hibernate

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Nhibernate - 使用没有关系的连接表进行查询 的相关文章

  • Spark 两个分区数据帧之间的共置连接

    对于以下两个之间的连接DataFrames在 Spark 1 6 0 中 val df0Rep df0 repartition 32 col a cache val df1Rep df1 repartition 32 col a cache
  • 如何通过 JOIN 组合(合并)相似的列以删除 NULL

    问题简介 我有一个名为 客户 的超类表和两个从客户继承的名为 个人 和 公司 的子表 因此 客户实体与 人 或 公司 具有一对一的关系 客户只能是 个人 或 公司 但不能同时是两者 如下所示 Customer Person Company
  • 为什么 nhibernate 3.3 不允许 ICollection 上的私有 setter?

    我从 nhibernate 3 2 升级到 nhibernate 3 3 并且在我的域类中定义了很多虚拟成员 如下所示 public virtual ICollection
  • 使用匹配两个或多个值的 JOIN 进行 SQL 更新

    我正在使用 JOIN 执行 SQL UPDATE 但该 JOIN 可以匹配多个值 假设我们有下表 Table 1 Table 2 col a col b col a col b 1 A 1 X 2 B 1 Y 3 C 3 Z 我执行以下查询
  • 使用 NHibernate 深复制实体

    我目前正在工作中启动一个新的 ASP NET MVC 项目 我们需要生成项目成本估算 我们使用 NHibernate ASP NET MVC 1 0 和 StructureMap 客户希望能够填写有关项目的所有信息 这些信息位于不同的页面中
  • MySQL 在同一列上两次连接同一个表,不同的值仅返回最近的行

    我一直试图解决复杂 JOIN 的一小部分 我们有一个 说明 表和一个 估计 表 在 估计 中 我们有不同类型的多行estimates对于给定的指令 说明表 id address status 1 27 TAYLOR ROAD ALBION
  • 更新数据库后 NHibernate 查询缓存不起作用

    我在 FluentNHibernate 中启用了二级缓存 Fluently Configure Database MsSqlConfiguration MsSql2005 ConnectionString connectionString
  • 将 Hibernate linq 查询转换为 HQL

    我知道 IQueryable 无法序列化 这意味着查询无法序列化 发送到 Web 服务 反序列化 查询然后发回 我想知道是否可以将 hibernate linq 查询转换为 hql 以通过网络发送 我还缺少另一条路线吗 我想我已经看到 AD
  • C# 泛型 - 可以创建具有 n 个泛型类型的方法..?

    我认为这是不可能的 但这里 我想添加可以处理 n 个泛型的方法 例如 bool
  • 升级到 NHibernate 3.1 时 NHibernate 映射中断

    我最近刚刚升级到 FluentNHibernate 1 2 它使用 NHibernate 3 1 升级后 我的一些旧映射无法正常工作 我一直很难弄清楚为什么 我想也许这里有人可以提供帮助 我有 3 个课程 练习 练习和练习练习 一个练习可以
  • NHibernate 获取没有主键的子项

    我试图通过映射将对象集合放入父对象中 我有一个主键是 guid Id 的父对象 ScoreCard 和一个主键是 guid Id 的子 Score 对象 我想根据两个对象都有的两个字段为父对象选择子对象 但我无法让它工作 这是映射
  • NHibernate 反射优化器 - 它有什么作用?

    我发现每当我禁用 nhibernate 反射优化器时 初始化会话工厂的速度就会大大加快 这对于测试目的非常有用
  • 多列多对一

    我有一个遗留数据库和两个表之间一对一的关系 问题是关系使用两列 而不是一列 在 nhibernate 中是否有某种方法可以说 当获取引用的实体时 它在 join 语句中使用了两列 而不是一列 我有一个类似的表结构 任务进度 进度ID Tas
  • JPA Criteria API 任意数量的联接/子查询

    我需要使用以下实体构建相交类型查询 为了清楚起见 减少了实体 Entity and other stuff public class Member Id private Long id private String name Entity
  • 为什么 NHibernate 在选择时删除然后插入复合元素?

    有人可以向我解释一下关于 NHibernate 如何处理复合元素的这个小谜团吗 我的课程看起来像这样 public class Blog public virtual int Id get private set public virtua
  • NHibernate 表更新事件

    我有这个表映射 我认为细节并不重要 WithTable COPACKER FACILITY Id x gt x FacilityNumber FACILITY NUM GeneratedBy Sequence FACSEQ Map x gt
  • 每个会话的 Nhibernate 会话示例

    您好 nhibernate 的一些专业人士能给我每个会话的 Nhibernate 会话实现示例还是 unhaddins 实现吗 或者解释如何做到这一点 此致 恩迪斯 我使用 NHibernate 工作了 4 年 此前我曾与 每次操作打开会话
  • 如何在使用 NHibernate 进行任何插入之前增加 ID

    看起来NH只获取一次MAX ID 第一次插入然后在内部存储这个值 这会在其他进程插入数据时给我带来一些问题 然后我没有实际的 ID 并且抛出重复键异常 假设我们有桌子Cats CREATE TABLE Cats ID int Name va
  • NHibernate 会话线程安全

    我已经使用 NHibernate 一段时间了 并且不时发现如果我尝试同时请求两个页面 或尽可能接近 偶尔会出错 所以我认为这是因为我的会话管理不是线程安全的 我以为这是我的课 所以我尝试使用与这篇博客文章不同的方法http pwigle w
  • 多态性:ORM 实体是领域实体还是数据实体?

    我有一个 BankAccount 表 LINQ to SQL 生成一个名为 BankAccount 的类 如下所示 global System Data Linq Mapping TableAttribute Name dbo BankAc

随机推荐