【发布时间】:2013-07-19 10:01:21
【问题描述】:
table Student
----------------
id | somecolumn with string| fk(which is self referencing ID of the same table)
如何进行休眠查询,以获取 id 值与 fk 值匹配的所有项目。
这是我尝试过的,但它不起作用(它只返回 1 个结果而不是结果集)
List<Student> list = (List<Student>) sessionFactory
.getCurrentSession()
.createQuery("from Student p join p.studentFKs p2 where p2.id = :parentId")
.setParameter("parentId", parentId).list();
有人可以帮我解开这个谜吗?我知道它也可以通过 Hibernate 标准来实现。
UPDATE 答案是将查询更改为(加入无效..):
select p from Student p join p.student p2 where p2.id = :parentId
【问题讨论】:
-
你可以在这里发布你的实体类吗?
-
答案是更改查询。不是通过哈希集加入,而是通过相同的类类型加入,因为它是自引用表。我用答案更新了我的问题
标签: java sql spring hibernate hibernate-mapping