JavaGoogleAppEngine删除JPQL查询和级联
我注意到,在使用下面的JPQL查询时,PersistentUser的子级没有被删除。但是,如果执行entityManager.remove(object)
,则会删除子级。这是预期的吗?为什么下面的JPQL查询不执行级联删除
@OneToMany(mappedBy = "persistentUser", cascade = CascadeType.ALL)
private Collection<PersistentLogin> persistentLogins;
...
@Override
@Transactional
public final void removeUserTokens(final String username) {
final Query query = entityManager.createQuery(
"DELETE FROM PersistentUser p WHERE username = :username");
query.setParameter("username", username);
query.executeUpdate();
}
# 1 楼答案
这是预期的,JPQL删除操作不会级联。根据JPA 1.0规范: