假设我在Java中有三个实体:实体A,实体B和实体C.实体A将实体B作为字段,实体B将实体C作为字段。现在在我的DAO类中,我获得了实体C的对象。使用Hibernate HQL查询,是否可以更新数据库中具有实体B的实体A的所有实例,实体B又实体C字段等于实体C的对象。具体来说,我想象下面的内容。以下查询可能吗?请注意,我使用id来检查是否相等
C c = new C();
c.setId(someId);
Query query = session.createQuery("update A set someField = true where b.c=:c");
query.setEntity("c", c);
query.executeUpdate();
答案 0 :(得分:0)
Hibernate批量DML语句不支持联接。您可以使用子查询来实现此目的。例如:
update A set someField = true
where id in (select id from A where b.c = :c)