Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 谷歌应用引擎-删除JPQL查询和级联_Java_Google App Engine_Jpa_Google Cloud Datastore_Jpql - Fatal编程技术网

Java 谷歌应用引擎-删除JPQL查询和级联

Java 谷歌应用引擎-删除JPQL查询和级联,java,google-app-engine,jpa,google-cloud-datastore,jpql,Java,Google App Engine,Jpa,Google Cloud Datastore,Jpql,我注意到,在使用下面的JPQL查询时,PersistentUser的子级没有被删除。但是,如果执行entityManager.remove(object),则子项将被删除。这是预期的吗?为什么下面的JPQL查询不执行级联删除 @OneToMany(mappedBy = "persistentUser", cascade = CascadeType.ALL) private Collection<PersistentLogin> persistentLogins; ... @Ove

我注意到,在使用下面的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();
}
@OneToMany(mappedBy=“persistentUser”,cascade=CascadeType.ALL)
私人收藏持久登录;
...
@凌驾
@交易的
公共最终void removeUserTokens(最终字符串用户名){
最终查询查询=entityManager.createQuery(
“从PersistentUser p中删除,其中username=:username”);
query.setParameter(“用户名”,用户名);
query.executeUpdate();
}

这是预期的,JPQL删除操作不会级联。根据JPA 1.0规范:

4.10批量更新和删除操作 (……)

删除操作仅适用于 指定类的实体和 它的子类它不会级联 到相关实体