有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java hibernate自引用表按fk获取行

table Student
----------------
id  | somecolumn with string| fk(which is self referencing ID of the same table)

如何进行hibernate查询,以获取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标准来实现

更新答案是将查询更改为(加入无效..):

select p from Student p join p.student p2 where p2.id = :parentId

共 (1) 个答案

  1. # 1 楼答案

    我用这样的东西,这就是工作

    连接内部实体学生的属性:

    @ManyToMany(cascade = CascadeType.REFRESH)
    private Set<Student> testJoins = new HashSet<Student>();
    

    HQL获得该设置:

    select a.testJoins from Student a where a.id = :parentId
    

    也许您可以将查询从p2.id = :parentId更改为>>p.id = :parentId