java - 如何在 JPA/Hibernate 中与现有数据库建立表关联?

标签 java hibernate jpa

目前我的数据库中有两个表 EncountersReferrals:

这两个表之间是一对多的关系。目前它们与外键链接在一起。现在我有

    public class Encounter extends JPASupport implements java.io.Serializable { 
        @Column(name="referralid", unique=false, nullable=true, insertable=true, updatable=true)
           public Integer referralid; 
}

但我真正想要的是

     public class Encounter extends JPASupport implements java.io.Serializable { 
..........
        @OneToMany(cascade=CascadeType.PERSIST)
        public Set<Referrals> referral;
............
    }

这样我最终可以像这样进行查询:

   List<Encounter> cases = Encounter.find(
               "select distinct p from Encounter p join p.referrals as t where t.caseid =103"
).fetch();

我如何告诉 JPA,即使我的外键和主键有非标准列名,但它是我想要链接的对象模型,而不仅仅是键的整数值?

这有意义吗?

最佳答案

我无法从您的示例中看出,是一个推荐有很多遭遇,还是一个遭遇有很多推荐?你似乎来回走动。这将适用于每个推荐人都有很多遭遇:

public class Encounter extends JPASupport implements java.io.Serializable {    
      @ManyToOne
      @JoinColumn(name="referralid", referencedColumnName="id",//otherstuff)
      private Referral referral; 
}


 public class Referral extends JPASupport implements java.io.Serializable { 

    @OneToMany(cascade=CascadeType.PERSIST, mappedBy="referral")
    private Set<Encounter> encounters;

}

关于java - 如何在 JPA/Hibernate 中与现有数据库建立表关联?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2878162/

相关文章:

java - 使用 hibernate 查询 : colon gets treated as parameter/escaping colon

java - Hibernate 关系加载

java - 带连接的 Spring JPA Costum 返回类型

读取对象时Java堆栈溢出

java - 这个java while循环在合并排序中做什么?

java - SpringMVC+Hibernate :criteria. list() 返回空

java - 由 : org. hibernate.MappingException : Unknown entity: New Object. JTA 引起

java - 将 Spring Boot 应用程序(使用 javax.persistence)升级到 JDK 11

java - 如何使用 JMenuItem 在 Java 中重置 GUI?

Java 向上转型或多态性继承