2010-05-20 5 views
1

Actuellement, j'ai deux tables dans ma base de données Rencontres et Parrainages:Comment puis-je établir une association de table dans JPA/Hibernate avec une base de données existante?

Il y a une relation un à plusieurs entre ces deux tables. Actuellement, ils sont liés avec des clés étrangères. En ce moment, je

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

Mais ce que je veux vraiment est

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

Alors que je peux éventuellement faire une requête comme ceci:

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

Comment puis-je dire JPA que même si J'ai des noms de colonnes non standard pour mes clés étrangères et clés primaires que les modèles d'objet que je veux lié, pas simplement la valeur entière pour les clés?

Est-ce que cela a du sens?

Répondre

3

Je ne peux pas dire à partir de votre exemple, est-ce qu'une référence a de nombreuses rencontres, ou est-ce qu'une rencontre a beaucoup de références? Vous semblez aller et venir. Ce serait pour chaque référence a beaucoup de rencontres:

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; 

} 
+0

Désolé pour la confusion (mon esprit est absolue moosh en ce moment). Oui, une référence a de nombreuses rencontres. Laissez-moi essayer. – bdd

+1

vous pouvez également besoin d'un mappedBy = "referral" sur le @OneToMany, mais Hibernate peut généralement trouver ce dont il a besoin par type – Affe

+0

or absolu. Travaillé. Merci d'avoir fait ma journée un peu moins tirant les cheveux! – bdd

Questions connexes