예시
User
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
}
UserProfile
import javax.persistence.*;
@Entity
public class UserProfile {
@Id
private Long id;
@OneToOne
@MapsId
@JoinColumn(name = "id")
private User user;
}
사용 방법
User user = new User();
entityManager.persist(user);
UserProfile userProfile = new UserProfile();
userProfile.setUser(user);
entityManager.persist(userProfile);
@MapsId 를 사용하여 User 엔티티의 기본값이 UserProfile 의 기본키 값으로 복사 됨UserProfile 엔티티를 생성할때 id값을 명시적으로 설정할 필요가 없음