HQL错误:join的path
我不断尝试此查询的变体,似乎无法做到这一点。 我也引用了这个post: join的path! Nhibernate错误 ,似乎无法将相同的逻辑应用于我的查询。 我的User
对象有一个UserGroup
集合。
我明白查询需要引用实体内的实体,但从我所看到的我是…
@NamedQuery(name = "User.findByGroupId", query = "SELECT u FROM UserGroup ug INNER JOIN User u WHERE ug.group_id = :groupId ORDER BY u.lastname")
select u from UserGroup ug inner join ug.user u where ug.group_id = :groupId order by u.lastname
您需要在HQL查询中使用path,从一个实体到另一个实体。 HQL和连接的Hibernate文档提供了更多的信息。
您需要将持有该关联的实体命名为“用户”。 例如,
... INNER JOIN ug.user u ...
这是错误消息所抱怨的“path” – 从UserGroup到User实体的path。
Hibernate依赖于声明式JOIN,在映射元数据中声明连接条件。 这就是为什么在没有path的情况下构build本地SQL查询是不可能的。