【问题标题】:Join Different tables using Criteria使用条件连接不同的表
【发布时间】:2013-09-01 09:01:38
【问题描述】:

我有两个不同的实体,我需要根据它们之间的共同实体属性将它们连接起来,但是没有从创建标准的实体到另一个实体的路径! 请帮忙。

谢谢


--编辑--

抱歉,我的问题可能不清楚。

我有以下实体:

class A
{
    string Text {get;set;}
}
class B 
{
    string Text {get;set;}
}
class C
{
    string Text {get;set;}
    B B_Object_1 {get;set;}
}
class D
{
    A A_Object {get;set;}
    B B_Object_2 {get;set;}
}

我要做的是在 D 实体上创建一个标准,但是,我需要将它与 C 实体加入,并且加入条件是 D.B_Object_2 == C.B_Object_1

因为在投影上,或者我需要被选为结果的内容包含: D.A_Object.Text 和 C.B_Object_1.Text 基于我上面的加入条件。

这可以使用 Criteria 还是在 DetachedCriteria 的帮助下完成?

谢谢

【问题讨论】:

  • 您能否更具体一些,给我们举个例子,展示使用所涉及的实体等?目前,这个问题有点模糊,无法回答。
  • 请检查我上面的编辑。谢谢
  • 这样好多了。您是否能够使用 SQL 表达您正在拍摄的查询?
  • 我需要根据这个条件“D.B_Object_2 == C.B_Object_1”加入D和C,然后同时选择D中的数据,和C.B_Object_1。

标签: nhibernate join nhibernate-criteria detachedcriteria


【解决方案1】:

我想这是不可能的。至少没有找到任何巧妙的解决方案。但是有两种解决方法:

  1. Query only properties。不确定 Criteria API 是否可以处理此问题,但 HQL 肯定可以。
  2. 普通的旧 SQL 查询 - session.CreateSQLQuery()。

【讨论】:

    猜你喜欢
    • 2021-09-04
    • 2014-12-30
    • 2023-03-16
    • 2018-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    相关资源
    最近更新 更多