Ich brauche 3 Entitäten: Benutzer, Vertrag (die eine Viele-zu-viele-Beziehung sind) und eine mittlere Entität: UserContract (dies wird benötigt, um einige Felder zu speichern).Wie mache ich eine Join-Tabelle in JPA?
Was ich wissen möchte, ist die korrekte Möglichkeit, die Beziehungen zwischen diesen Entitäten in JPA/EJB 3.0 zu definieren, so dass die Operationen (persist, delete, etc) in Ordnung sind.
Zum Beispiel möchte ich einen Benutzer und seine Verträge erstellen und sie auf einfache Weise beibehalten.
Zeit, was ich habe, ist dies: In 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;
Und mein UserContract.java:
@Entity
public class UserContract {
@EmbeddedId
private UserContractPK userContractPK;
@ManyToOne(optional = false)
private User user;
@ManyToOne(optional = false)
private Contract contract;
Und Mein UserContractPK:
@Embeddable
public class UserContractPK implements Serializable {
@Column(nullable = false)
private long idContract;
@Column(nullable = false)
private String email;
Ist dies der beste Weg, um meine Ziele zu erreichen?