2015-07-17 6 views
5

मैं तीन टेबल A, B और C है और एक मानचित्रण तालिका A_B_C जो सभी तीन टेबल और कुछ अन्य विशेषताओं के लिए विदेशी कुंजी है (के X, Y मान लीजिए)। अब, मैं अपने जावा वर्ग में इन तीन तालिकाओं का प्रतिनिधित्व करने में शामिल होना चाहता हूं।हाइबरनेट में एक तालिका का उपयोग करके तीन तालिकाओं में कैसे शामिल हों?

इन तालिकाओं के बीच संबंध कई लोगों में से एक है। इसलिए, मैं चाहता हूं कि मेरी जावा कक्षाएं इस तरह कुछ दिखें।

@Entity(name = "A") 
@Table(name = "A") 
public class A { 

     ??? Hibernate Annotation or query 
     Map<B,List<C>> BMapC; 
} 

@Entity(name = "B") 
@Table(name = "B") 
public class B { 
     ... 
} 

@Entity(name = "C") 
@Table(name = "C") 
public class C { 
     ... 
} 

मैं जानना चाहता हूं कि इसके लिए हाइबरनेट एनोटेशन का लाभ उठाना संभव होगा या नहीं। यदि नहीं, तो क्या कोई तरीका है कि मैं एक कस्टम क्वेरी लिख सकता हूं और चर को पॉप्युलेट कर सकता हूं?

+0

मेरा मानना ​​है कि यह डुप्लिकेट डेटा में समाप्त होगा ?? क्या आप –

+0

विस्तृत कर सकते हैं हां यह डेटा मॉडल में डुप्लिकेट डेटा में समाप्त होगा। हालांकि यह हमारे उपयोग के मामले के लिए ठीक है। –

+0

बस एक तरफ ध्यान दें: आपको '@ Entity' या' @ table' के लिए 'name = ...' की आवश्यकता नहीं है। –

उत्तर

8

दुर्भाग्य से हाइबरनेट ऐसे परिदृश्यों के लिए बॉक्स के बाहर कोई टिप्पणी प्रदान नहीं करता है। एक में

@Entity 
@Table(name = "A_B_C") 
public class name = "A_B_C" { 

    @ManyToOne(cascade=CascadeType.ALL) 
    @JoinColumn(name = "FK_B", nullable = false) 
    private B b; 

    @ManyToOne(cascade=CascadeType.ALL) 
    @JoinColumn(name = "FK_C", nullable = false) 
    private C c; 

    //Getters, Setters, other attributes etc. 
} 

और इस वस्तु की एक सूची है:: इस परिदृश्य केवल A_B_C करने के लिए एक वर्ग मानचित्रण बनाने के द्वारा नियंत्रित किया जा सकता है

@Entity 
@Table(name = "A") 
public class name = "A" { 

      @OneToMany(cascade=CascadeType.ALL) 
      @JoinColumn(name = "FK_A", nullable = false) 
      private Set<A_B_C> abc; 

      //Getters, Setters, other attributes etc. 
} 

और प्रोग्राम के रूप में B,C के मानचित्र के लिए सेट एबीसी परिवर्तित।

-1

मेरा मानना ​​है कि आप क्या देख रहे हैं के लिए एक निम्नलिखित

[http://www.mkyong.com/hibernate/hibernate-many-to-many-example-join-table-extra-column-annotation/][1]

के अधिक है, जहां एक में शामिल होने तालिका एक अतिरिक्त स्तंभ

आशा इस लेख

चीयर्स मदद करता है

संबंधित मुद्दे