删除(和INSERT)不会通过JPQL查询中的关系进行级联。这在规范中显然是拼写的:
删除操作仅适用于指定类及其子类的实体。它不会级联到相关实体。
幸运的是,持久化并通过实体管理器删除(当定义了层叠属性时)。
你可以做什么:
代码是这样的:
String selectQuery = "SELECT m FROM Mother m WHERE some_condition";
List<Mother> mothersToRemove = entityManager
.createQuery(selectQuery)
.getResultStream()
.forEach(em::remove);