小编rdk*_*rdk的帖子

javax.persistence.Query.getResultList()可以返回null吗?

如果是这样,在什么情况下呢?

Javadoc和JPA规范什么也没说.

java hibernate jpa

112
推荐指数
3
解决办法
6万
查看次数

如何在JPA中删除具有ManyToMany关系的实体(以及相应的连接表行)?

假设我有两个实体:Group和User.每个用户都可以是许多组的成员,每个组可以拥有许多用户.

@Entity
public class User {
    @ManyToMany
    Set<Group> groups;
    //...
}

@Entity
public class Group {
    @ManyToMany(mappedBy="groups")
    Set<User> users;
    //...
}
Run Code Online (Sandbox Code Playgroud)

现在我想删除一个组(假设它有很多成员).

问题是当我在某个Group上调用EntityManager.remove()时,JPA提供程序(在我的情况下是Hibernate)不会从连接表中删除行,并且由于外键约束而导致删除操作失败.在User上调用remove()工作正常(我猜这与拥有关系的一方有关).

那么在这种情况下如何删除组呢?

我能想到的唯一方法是加载组中的所有用户,然后为每个用户从他的组中删除当前组并更新用户.但是,为了能够删除该组,对组中的每个用户调用update()似乎很荒谬.

java orm hibernate jpa

81
推荐指数
5
解决办法
8万
查看次数

标签 统计

hibernate ×2

java ×2

jpa ×2

orm ×1