批量插入多对多关系

时间:2013-11-30 13:53:39

标签: java hibernate jpa many-to-many

我有一个实体定义为:

class Group {

    // some irrelevant fields

    @ManyToMany(targetEntity=User.class)
    private List<User> users;
}

class User {

    // some irrelevant fields

    @ManyToMany(targetEntity=Group.class)
    private List<Group> groups;
}

在我的界面中,我试图提供一种以一种批量输入形式将用户添加到组的方法。有没有办法允许插入新的多对多条目,而不必先在组中加载整个用户集合?

2 个答案:

答案 0 :(得分:0)

其中一方必须是反面,使用mappedBy。您只需要更新所有者方。

因此,如果您将User设为所有者,则只需将该组添加到用户即可。

如果这还不够,那么请考虑使用SQL。

此外,targetEntity对于列表的泛型类型是多余的。你不需要它。

答案 1 :(得分:0)

不,使用JPQL无法做到这一点,尽管您没有定义“以某种批量输入形式”。基本上,您要么使用本机查询(即SQL查询),要么获取整个集合。有关详细信息,请参阅this question