here gibi bir m: n ilişkilendirme yaşıyorum, bununla ilgili bazı bilgiler AuthorBook
öğesinin ilişkili olması dışında. Sanırım, @JoinTable
'a ihtiyacım yok ve Author
ve Book
'un her birine bir bağlantı ve ek bilgilerden oluşan bir class AuthorBook
oluşturmalısınız.Açık Hazırda Bekletme birleştirme tablosu
Ben
@Entity
public class AuthorBook {
@Id @ManyToOne Author author;
@Id @ManyToOne Book book;
@LobOrWhatever AdditionalInformation additionalInformation;
}
gibi denedim ve ben (ben artık tam olarak hatırlamıyorum) sorunlarla karşılaştı. Bu yüzden bir @GeneratedId int id
ekledim ve başvuruları @NaturalId
olarak değiştirdim. Bu, çoğunlukla iyi çalışır, ama eğlenceli, bana Author
ve Book
Session#byNaturalId
geçmek için beni zorlar (beni icar ve varlıkların birlikte getirilmesi gerekir). Ben de
session.byNaturalId(AuthorBook.class)
.using("author.id", someAuthorId)
.using("book.id", someBookId)
.load();
çalıştı ama bu "author.id" (doğal id "yazar", ama onun "id" eşit derecede iyi çalışır gibi aslında doğru) hiçbir doğal kimliği olduğunu söyleyip reddedildi.
Web'e baktığımda, herkesin böyle bir tablodaki varlıklar yerine kimlikleri kullanarak buluyorum, bu yüzden imkansız bir şey denediğimi merak ediyorum .... (ya da aptal).