Мне нужно 3 объекта: Пользователь, Контракт (отношение между многими) и средний объект: UserContract (это необходимо для хранения некоторых полей).
То, что я хочу знать, - это правильный способ определения отношений между этими сущностями в JPA / EJB 3.0, чтобы все операции (сохраняются, удаляются и т. Д.) Были в порядке.
Например, я хочу создать пользователя и его контракты и упростить их сохранение.
В настоящее время у меня есть это:
В User.java:
@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<UserContract> userContract;
In 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;
Это лучший способ достичь моих целей?