سؤال
لدي طاولتان:
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
الجواب السريع هو أنه إذا كان لديك علاقة كثيرة ، فستحتاج إلى جدول آخر. إذا كان لديك علاقة فردية أو بعدة لعلو ، فلن تفعل ذلك.
لا تنتمي إلى StackOverflow