Мне нужно 3 объекта: Пользователь, Контракт (которые являются отношениями многих и многих) и средний объект: UserContract (это необходимо для хранения некоторых полей).Как правильно сделать многоточие в таблице JPA?
Что я хочу знать, это правильный способ определить отношения между этими объектами в JPA/EJB 3.0, чтобы операции (persist, delete и т. Д.) Были в порядке.
Например, я хочу создать Пользователя и его контракты и сохранить их в простой форме.
В настоящее время, что у меня есть это: В User.java:
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<UserContract> userContract;
В Contract.java:
@OneToMany(mappedBy = "contract", fetch = FetchType.LAZY)
private Collection<UserContract> userContract;
И мой UserContract.java:
@Entity
public class UserContract {
@EmbeddedId
private UserContractPK userContractPK;
@ManyToOne(optional = false)
private User user;
@ManyToOne(optional = false)
private Contract contract;
И мой UserContractPK:
@Embeddable
public class UserContractPK implements Serializable {
@Column(nullable = false)
private long idContract;
@Column(nullable = false)
private String email;
Это лучший способ достичь моих целей?