java - 如何处理 hibernate 生成的唯一字段?

标签 java mysql hibernate many-to-many

开门见山,我正在尝试构建以下逻辑来 hibernate 关系。

A Resource has many read groups.

A Resource has many write groups.

Both groups are Groups class.

到目前为止我做了什么:

ResourcePage.class

public class ResourcePage {
  /*
  useless code
  */
  private Set read;
  private Set write;
  @OneToMany(cascade = CascadeType.ALL,
    fetch = FetchType.EAGER,
    targetEntity = Groups.class)
  @JoinTable(name = "resourcepage_read_permissions")
  public Set getRead() {
    return read;
  }

  @OneToMany(cascade = CascadeType.ALL,
    fetch = FetchType.EAGER,
    targetEntity = Groups.class)
  @JoinTable(name = "resourcepage_write_permissions")
  public Set getWrite() {
    return write;
  }
  /*
  useless code
  */    
}

表格按预期创建。

enter image description here

但是,hibernate 正在为 组的 id 生成一个唯一约束,这给我带来了一个大问题,因为有时两个不同的资源可能与读取组属于同一组。

enter image description here

你们是怎么处理的? 我怎样才能让 hibernate 不生成这个唯一约束?

非常感谢。

最佳答案

您需要使用 @ManyToMany 而不是 @OneToMany

关于java - 如何处理 hibernate 生成的唯一字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42216098/

相关文章:

java - 未知实体类型异常 : Unable to locate persister (Hibernate 5. 0)

javascript - 如何将 "Different"多个 <Button> 函数转换为带有 <Select> 的通用函数?

java - 如何在 Jersey TestNG 测试中显示 HTTP 请求?

php - 使用 vim Tabularize 插件只匹配第一次出现的定界符

java - Vaadin + TabSheet + Grails Service = 当前线程没有 session

java - 预配置的 netbeans 项目与 NoSuchMethodError hibernate 和 spring 冲突

java - 在 Java 中存储静态映射

java - 你在 POJO 中编写 Hibernate 代码吗?

mysql - 如果在命令行中使用,如何创建 mysql 数据库备份

mysql - MySQL 位与二进制之间有什么区别?