Widziałem przykład zdefiniowanej relacji ManyToMany dwóch klas encji między sobą
@Entity public class Customer {
...
@ManyToMany
public Set<PhoneNumber> getPhones() {
return phones;
}
...
}
@Entity public class PhoneNumber {
...
@ManyToMany(mappedBy="phones")
public Set<Customer> getCustomers() {
return customers;
}
...
}
Powyższy kod w ogóle nie zawiera odniesień do tabeli pośredniej, która dla takiej relacji musi wystąpić w bazie danych. Czy ten powyższy, uproszczony zapis jest poprawny?
Wcześniej wydawało mi się że w takiej relacji musi wystąpić odniesienie do tabeli pośredniej w celu określenia Foreign Keys czyli adnotacj @JoinTable.
Poniższy przykład adnotacji alezy do innego przykładu:
@JoinTable(name="ORDER_DETAIL",
joinColumns=
@JoinColumn(name="ORDER_ID", referencedColumnName="ORDER_ID"),
inverseJoinColumns=
@JoinColumn(name="PROD_ID", referencedColumnName="PROD_ID")
)