我在创建具有共同属性的两个实体的联接时遇到问题,但它们没有映射在一起。
假设您有一个实体 Article,其中包含属性 FamilyCode 和一个具有属性 Code 和 Label 的实体 Family。
在我的映射中,Article 没有引用 Family,我不想更改它(以保持与其他内部和遗留方法的兼容性)。
所以,我无法在 Nhibernate 中翻译以下查询:
SELECT f.Code, f.Label
FROM Article a
INNER JOIN Family f ON a.FamilyCode = f.Code
WHERE f.Label LIKE 'p%'
我无法使用 JoinQuery,因为我无法注入 QueryOver 并且我不知道是否可以使用 WithSubquery。
我尝试使用 Future QueryOver 和 QueryOver,然后在内存中执行 Join(每次在 .List() 之后),但我有太多的 Article 行,因此需要很长时间。
你有想法吗?
Thanks.
我们可以使用 HQL - 但是only HQL.
-
14.2. from 子句 http://nhibernate.info/doc/nhibernate-reference/queryhql.html#queryhql-from (小引用和片段)
可能会出现多个类,从而产生笛卡尔积或“交叉”连接。
from Formula, Parameter
from Formula as form, Parameter as param
这就是 HQL 的方式
SELECT f.Code, f.Label
FROM Article a,
Family f
WHERE a.FamilyCode = f.Code
AND f.Label LIKE 'p%'
还要检查这个9.3.2. IQuery 接口 http://nhibernate.info/doc/nhibernate-reference/manipulatingdata.html#manipulatingdata-queryinterface也许这个问答 https://stackoverflow.com/q/26335220/1679310
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)