Hibernate HQL查询属性的字段

时间:2016-01-15 16:23:56

标签: java hibernate hql

假设我在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();

1 个答案:

答案 0 :(得分:0)

Hibernate批量DML语句不支持联接。您可以使用子查询来实现此目的。例如:

update A set someField = true
where id in (select id from A where b.c = :c)