java - JPA 中的多对多映射

标签 java database jpa-2.0

我在表 UsersGroups 之间有一个 M:N 关系。现在我正在尝试使用 JPA 连接这两个表,但我总是遇到此异常:

Multiple writable mappings exist for the field [GROUPS.name]. Only one may be defined as writable, all others must be specified read-only.

这是我的 Users 类(为简洁起见,我没有附上 getter 和 setter),它由 Admin 类和 SignedUser 类实现具有一些额外的属性。

@Entity
@Inheritance(strategy = InheritanceType.JOINED)
public class Users implements Serializable {

    @Id
    @Column(name = "login", nullable = false, length = 10)
    private String login;

    @Column(name = "name", nullable = false, length = 30)
    private String name;

    @Column(name = "surname", nullable = false, length = 50)
    private String surname;

    @Column(name = "email", nullable = false, length = 100)
    private String email;

    @Column(name = "password", nullable = false, length = 20)
    private String password;

    @ManyToMany(mappedBy="users")
    private List<Groups> groups;

这是 Group 类:

@Entity
public class Groups implements Serializable {

    @Id
    @Column(name = "name", nullable = false, length = 20)
    private String groupName;

    @Column(name = "name", nullable = false, length = 50)
    private String descr;

    @ManyToMany
    @JoinTable(name = "user_group",
               joinColumns = {@JoinColumn(name = "groupName")},
               inverseJoinColumns = {@JoinColumn(name = "login")})
    private List<Users> users;

我还尝试将 JoinTable 注释放入 Users 类中,但结果相同。在此先感谢您的任何建议。

最佳答案

Group 类中,您有两个映射列 name 作为属性 groupNamedescr

该错误与 ManyToMany 无关。

关于java - JPA 中的多对多映射,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8409118/

相关文章:

java - 获取不同的加密 key 会导致 Android 使用相同的密码

java - JPA 问题,当我调用 : em. persist(obj); 时 `Referential integrity constraint violation Exception`

java - 带有列表的 JPA CriteriaQuery 投影

java - 如何在 OSGI 中使用嵌入 .so 文件的 jar

java - 奇怪的 DAO 设计导致 PermGen 错误?

java - 正则表达式在 Velocity 模板中不起作用

python - Django 会自动创建索引吗?

索引多于列的 MySQL 表

mongodb - 最佳数据记录数据库

mysql 查询 - 为一个巨大的表优化现有的 MAX-MIN 查询