0

在 Bean 类中有这个注解:

   class User {  
        @OneToMany(targetEntity = Feedback.class,mappedBy = "user",cascade =   
        CascadeType.ALL,fetch = FetchType.LAZY)  
    private List<Feedback> feedbacks;  
        ...  
    }

我想删除有一些反馈的用户。如果我输入这个:

sessionFactory.getCurrentSession().delete(
sessionFactory.getCurrentSession().get(User.class, id));

用户将被成功删除,(id为主键)。但是我想删除所有用户,女巫,角色=“admin”,如果我输入这个查询:

String query = "DELETE from User WHERE role='" + role + "'";
    sessionFactory.getCurrentSession().createQuery(query).executeUpdate();

它将仅删除不参考反馈的用户。我的查询有什么问题?请帮忙。

4

1 回答 1

1

您的查询没有任何问题。HQL 删除查询不会“触及”关联。这是每个 JPA 规范。

查看Hibernate Jira 中的这个问题,了解添加对添加新关键字 CASCADE 的支持以删除用于指定关联的查询,这些关联也应该被删除。

于 2012-06-01T22:19:49.497 回答