【发布时间】:2015-01-22 16:34:51
【问题描述】:
我有一个 NHibernate Linq 查询,我需要将它翻译成 HQL:
var result = Conexion.Session.Query<Person>();
result = result.Where(p => p.addresses.Any(a => a.City.Name == "mycity"));
返回在“MyCity”城市中至少拥有一个地址的人
如何将“any”子句翻译成“HQL sintax”?
谢谢。
【问题讨论】:
-
只是一个小提示 - 以后可能会有用。 LINQ 语句创建 EXISTS 子句,它不影响根 SELECT。这就是与 EXISTS 一起显示的 HQL 将以相同的方式工作的方式。另一方面, JOIN 会影响行数。当两个与人员相关的地址包含 Name == "mycity" 时,这可能会导致出现这种情况。在这种情况下,这将导致“不可分页”的结果集。换句话说 - SUBselect 稍后将支持分页;)
标签: java linq hibernate nhibernate hql