【发布时间】:2010-10-12 17:18:11
【问题描述】:
我有两个 HQL 查询用于快速而肮脏的单元测试。第一个看起来有点像这样:
from Foo where SOME_FOREIGN_KEY = 42
第二个是这样的:
from Foo as foo
inner join foo.Bar as bar
where foo.SOME_FOREIGN_KEY = 42
SOME_FOREIGN_KEY 列不是 Hibernate 知道已映射的名称。
由于某种原因,第一个 HQL 查询有效,但第二个无效。
我的目标是让第二个版本工作,而不需要遍历对象图到由外键标识的对象。对于这个测试,我有一个已知的 ID,我只想要与该 ID 相关的对象。关系另一端的对象本身是不相关的。这可能吗?
【问题讨论】:
-
注意,我将其标记为“nhibernate”和“hibernate”,以防这两者都适用(因为这是一个 HQL 问题),但我实际上使用的是 NHibernate。
-
SOME_FOREIGN_KEY 是 BAR 表的实际键吗?
-
SOME_FOREIGN_KEY 是不在查询中的单独表的外键。
标签: nhibernate hibernate hql