【问题标题】:NHibernate + Criterias + DetachedCriteriaNHibernate + Criterias + DetachedCriteria
【发布时间】:2009-10-15 14:03:26
【问题描述】:

我遇到了这个问题,我需要将此 SQL 查询转换为条件,但我遇到了一些麻烦,任何人都可以帮忙吗?

从参考中选择 * INNER JOIN Product Prod on Ref.id = Prod.id_referencia AND Prod.ProdDtAlteracao = (SELECT MAX(Prod2.ProdDtAlteracao) FROM Product Prod2 WHERE Prod.ProdCod = Prod2.ProdCod)

【问题讨论】:

    标签: nhibernate


    【解决方案1】:

    假设 Ref 有一个名为“products”的包/列表属性,它映射到 Product...

    session.CreateCriteria<Ref>("r")
        .CreateAlias("products", "p", InnerJoin)
        .Add(Subqueries.PropertyEq("p.ProdDtAlteracao", DetachedCriteria.For<Product>("p2")
            .SetProjection(Projections.Max("p2.ProdDtAlteracao"))
            .Add(Restrictions.EqProperty("p.ProdCod", "p2.ProdCod"))))
        .List<Ref>();
    

    查询看起来像

    SELECT ...
        FROM Ref 
        INNER JOIN Product Prod on Ref.id = Prod.id_referencia 
        WHERE Prod.ProdDtAlteracao = (
                SELECT MAX(Prod2.ProdDtAlteracao) 
                FROM Product Prod2 
                WHERE Prod.ProdCod = Prod2.ProdCod
            )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-01-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多