Ich habe 2 Einheiten Benutzer und Profil wo ein Benutzer ein Profil hat.Erhalten bestimmter Wert von der ausländischen Einheit mit JPA
Die User
Entitätszuordnung ist ziemlich klar und sieht wie folgt aus:
@Entity
public class User {
@Id
private String id;
@Column(unique = true, nullable = false)
private String email;
@Column(unique = true, nullable = false)
private String name;
}
So ist die Frage nach Profil Entitätszuordnung ist, die heikele Sache hier ist, dass Profil des Benutzers E-Mail enthält (nicht gesamtes Benutzer-Entität), aber es sollte nicht entweder aktualisiert werden oder von Profil gespeichert werden, so dass die E-Mail-Attribut nur gelesen von der fremden Benutzereinheit ist.
verwendete ich die Entitätszuordnung der folgenden Profile für Benutzer-E-Mail erhalten:
@Entity
public class Profile {
@Id
private String userId;
@PrimaryKeyJoinColumn
private User user;
@Basic
private String firstName;
@Basic
private String lastName;
// ...
public String getEmail() {
return user.getEmail();
}
}
Also habe ich beschlossen, die gesamte Einheit zu verbinden und um die Arbeit zu delegieren. Soweit ich verstehe, ist es unmöglich, mit @Column
wie diesem @JoinColumn
in Paar zu verwenden:
@OneToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
@Column(name = "email")
private String email;
Ich bin auch über die Verwendung von @SecondaryTable
nicht sicher, wie es scheint, dass es für einen anderen Zweck ausgelegt ist.
Gibt es einen besseren Ansatz für fremde Entität Feld mit JPA-Mappings?
- JPA Backend: Eclipse 2.6.2