Как установить связь таблиц в JPA / Hibernate с существующей базой данных? - PullRequest
1 голос
/ 21 мая 2010

В настоящее время в моей базе данных есть две таблицы Встречи и Рефералы :

Между этими двумя таблицами существует отношение один ко многим. В настоящее время они связаны между собой внешними ключами. Прямо сейчас у меня есть

    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 Ответ

3 голосов
/ 21 мая 2010

Из вашего примера я не могу сказать, много ли у реферала встреч, или у него много рефералов? Вы, кажется, ходите взад и вперед. Это было бы для каждого реферала имеет много контактов:

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;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...