java - 如何在 Hibernate/JPA 中的两个表之间创建中间表?

标签 java hibernate jpa

表1:电脑 table

 @Entity
 @Table ("computer")
 public class Computer{
   private int id;
   .
 }

表 2:许可证表:

 @Entity
 @Table ("licenses")
 public class Licnese{
   private int id;
   .
 }

表 3:待创建。这是中级,应该只有两个字段

计算机 ID |许可证ID

许可证 ID 可以链接到多个计算机 ID,多个计算机 ID 可以拥有多个许可证。

CompID | LicneseID  
      1|2
      1|2
      2|2

在我们的例子中,计算机和许可证数据已经存在。我们运行一个作业来填充中间表,即选择计算机 ID,从其余服务下载 lincense id,在现有数据库中查找许可证并在中间表中创建记录。

应该怎样做?

  1. 独立插入或

    中级{ 私有(private) int 复合体 私有(private) int liceid }

但是在此主键是必需的,而客户不想要。

  • 使用计算机或许可证实体进行更新(如果是)那么如何更新?
  • 我知道我们需要在计算机实体中使用 ElementCollection,但如何引用许可证 ID?

    @ElementCollection(targetClass = Intermediate.class)
        @CollectionTable(name = "Intermediate", joinColumns = @JoinColumn(name = "ID"))
        @AttributeOverrides({
            @AttributeOverride(name = "license ID",column = @Column(name = "License ID")),
        private List<Intermediate> intermediate;
    

    在这种情况下我们还需要合并计算机实体吗?

    最佳答案

    根据描述,您想要使用 Hibernate 连接表方法。如何实现联表的方法可以引用下面的链接:http://fruzenshtein.com/hibernate-join-table-intermediary/

    关于java - 如何在 Hibernate/JPA 中的两个表之间创建中间表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59657243/

    相关文章:

    java - 自定义适配器不适用于 Parse.com 的 ListView

    java - 如何从 ArrayList.toString() 的结果中删除 [,] 符号?

    java - 从覆盖的 Tomcat 类访问应用程序代码

    java - 如何级联插入

    java - JPA、HIBERNATE奇怪的错误

    java - 如何将 lombok 和 JPAMetalModel 处理器与 maven 合并

    java - 如何从csv文件中读取特定数据并将其删除?

    java - hibernate 泛型继承

    java - 使用 JPA 和 Criteria API 连接泛型类型

    java - 如何从 JFrame 将数据输出到 JPanel