저는 두 개의 엔티티가 있습니다 사용자 및 프로필 하나의 사용자가 하나의 프로필을 가지고 있습니다. ,JPA를 사용하여 외국 법인에서 특정 가치를 얻으십시오
@Entity
public class User {
@Id
private String id;
@Column(unique = true, nullable = false)
private String email;
@Column(unique = true, nullable = false)
private String name;
}
그래서 질문이 프로필 엔티티 매핑에 관한, 까다로운 것은 여기 이 (안 전체 사용자의 실체) 정보가 사용자의 이메일을 포함하고있다 :
는 User
엔티티 매핑은 매우 명확하고 다음과 같습니다 프로필에 의해 업데이트되거나 저장되어서는 안되기 때문에 외국 사용자 엔터티의 전자 메일 읽기 전용 속성입니다.
@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();
}
}
그래서 내가 전체 개체를 결합하고 여기에 작업을 위임하기로 결정했다. 지금까지 내가 이해는이 같은
@Column
에 몇
@JoinColumn
를 사용하는 것은 불가능합니다 :
@OneToOne
@JoinColumn(name = "userId", insertable = false, updatable = false)
@Column(name = "email")
private String email;
내가 그것이 다른 목적을 위해 설계되어 보인다 @SecondaryTable
의 사용에 대한도 모르겠습니다.
JPA 매핑을 사용하여 외국 엔티티 필드을 얻는 더 좋은 방법이 있습니까?
- JPA 백엔드 : EclipseLink가 2.6.2