Eclipselink合并不会在多对多关系中插入新行

时间:2014-11-07 09:35:54

标签: java jpa many-to-many eclipselink

我在用户和角色实体之间存在多对多关系。当我尝试通过添加新的用户对象来合并角色时,合并后我希望插入连接表(在sql server数据库中)中的新行但没有任何反应。

我猜问题是所有者现在是用户实体的关系的方向,应该切换到角色。但如果我改变它,那么我的春季保安就不会起作用。有没有其他方法可以解决这个问题?除了改变多对多方面? 提前致谢。

用户类

@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinTable(
            name = "SEC_USER_ROLE",
            joinColumns = {
                @JoinColumn(name = "SEC_USER_ID", referencedColumnName = "SEC_USERS")},
            inverseJoinColumns = {
                @JoinColumn(name = "SEC_ROLE_ID", referencedColumnName = "SEC_ROLES")})
    private List<Role> roles;  

-

角色等级

@ManyToMany(mappedBy = "roles", fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private List<User> users;

这是我的合并功能

@Override
@Transactional(readOnly = false, propagation = Propagation.REQUIRED)
public T merge(T o) {

    o = em.merge(o);
    em.flush();
    return o;
}

0 个答案:

没有答案