سؤال

لدي طاولتان:

A
s_id(key) name cli type

B
sa_id(key) s_id user pwd

لذلك في JPA لدي:

@Entity
class A...{
   @OneToMany(fetch=FetchType.EAGER)
    @JoinTable( name="A_B", 
    joinColumns={@JoinColumn(name="a_id", table="a",unique=false)}, 
    inverseJoinColumns={@JoinColumn(name="b_id", table="b", unique=true)} )
   Collection<B> getB(){...}
}

الفئة ب هي مجرد فئة كيان أساسية مع عدم الإشارة إلى أ.

نأمل أن يكون هذا واضحا. سؤالي هو: هل أحتاج حقًا إلى طاولة انضمام للقيام بمثل هذا الانضمام البسيط؟ لا يمكن القيام بذلك مع joincolumn بسيط أو شيء من هذا القبيل؟

هل كانت مفيدة؟

المحلول

أنت لا تحتاج إلى مفصل لهذا. إذا لم يكن لدى الفئة B أي إشارة إلى الفئة A ، فستكتب ما يلي

@Entity class A...{ 
@OneToMany(fetch=FetchType.EAGER)     
Collection getB(){...} }

في معظم الحالات على الرغم من أنك قد ترغب في وجود علاقة ثنائية الاتجاه في هذه الحالة ، لدى B إشارة إلى A. في هذه الحالة ، ستحتاج إلى البحث عن شرح mappedby. ذكره بول.

نصائح أخرى

لا ، لا تحتاج إلى جدول انضمام لـ Onetomany. انظر إلى @mappedby annoatation

الجواب السريع هو أنه إذا كان لديك علاقة كثيرة ، فستحتاج إلى جدول آخر. إذا كان لديك علاقة فردية أو بعدة لعلو ، فلن تفعل ذلك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top