私は3つのエンティティ:ユーザ、契約(多対多の関係)、中間エンティティ:UserContract(これはいくつかのフィールドを格納するために必要です)が必要です。JPAでmanytomany結合テーブルを正しく行うにはどうすればいいですか?
私が知りたいのは、JPA/EJB 3.0のこれらのエンティティ間の関係を定義して、操作(永続性、削除など)がOKであることです。
たとえば、ユーザーとその契約を作成し、簡単な方法で永続化したいと考えています。
は、現在、私が持っているものである。この:User.javaで :
Contract.javaで@OneToMany(mappedBy = "user", fetch = FetchType.LAZY)
private List<UserContract> userContract;
:
@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;
これは私の目標を達成する最善の方法ですか?