Меня немного смущает, почему JPA создает два отношения «многие ко многим» вместо 2 отношений «один ко многим».
У меня есть автор класса и две коллекции Set телефонов и электронных писем.
@Entity
public class Author {
@Id
@GeneratedValue
private int id;
private String firstName;
private String lastName;
@OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
private Set<Phone> phones;
@OneToMany(cascade = CascadeType.PERSIST, fetch = FetchType.EAGER)
private Set<Email> emails;
и два класса
@Entity
public class Phone {
@Id
@GeneratedValue
private int id;
private String number;
@ManyToOne
@JoinColumn(name = "author_fk_phone_id")
private Author author;
@Entity
public class Email {
@Id
@GeneratedValue
private int id;
private String email;
@ManyToOne
@JoinColumn(name = "author_fk_id")
private Author author;
Таким образом, JPA должен создавать таблицы Author, Phone, Email, но JPA дополнительно создает таблицы author_email, author_phone. Я в замешательстве.