User、Contract (多対多の関係) と中間エンティティの 3 つのエンティティが必要です: UserContract (これはいくつかのフィールドを格納するために必要です)。
私が知りたいのは、JPA/EJB 3.0 でこれらのエンティティ間の関係を定義して、操作 (永続化、削除など) が正常に行われるようにする正しい方法です。
たとえば、ユーザーとそのコントラクトを作成し、それらを簡単な方法で保持したいと考えています。
現在私が持っているのはこれです: 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;
これは私の目標を達成するための最良の方法ですか?