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

时间:2010-05-20 21:58:40

标签: java hibernate jpa

目前我的数据库中有两个表遭遇推荐

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

    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即使我的外键和主键的非标准列名是我想要链接的对象模型,而不仅仅是键的整数值?

这有意义吗?

1 个答案:

答案 0 :(得分:3)

我无法从你的例子中看出,推荐是否有很多遭遇,或者遇到过多次推介?你似乎来回走动。这将是每个推荐有很多遭遇:

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;

}