재생 프레임 워크 응용 프로그램에서 OneToOne 매핑을 성공적으로 구현하는 데 어려움을 겪고 있습니다. 내가이OneToOne 매핑 - Play Framework Enitity
예는 다음과 같습니다
@Entity
public class Profile extends GenericModel {
@Id
@GeneratedValue(generator = "foreignGenerator")
@GenericGenerator(name = "foreignGenerator", strategy = "foreign",
parameters = @Parameter(name = "property", value = "user"))
public static int id;
@OneToOne(mappedBy="profile", cascade = {CascadeType.ALL})
public static User user;
}
과 :
@Entity
public class User extends Model {
@Required
public String firstName;
@Required
public String surname;
}
가 발생이 설정에서 :
이org.hibernate.AnnotationException: No identifier specified for entity: models.Profile
사람이에 대한 몇 가지 빛을 던질 수 있습니까?
편집가 : Christian Boariu's answer 당, 나는 당신이 제안 및 사용자에 무슨에 프로필을 수정 한 :
@Entity
public class User extends GenericModel {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
public Long user_id;
@Required
public String firstName;
@Required
public String surname;
@OneToOne(cascade = {CascadeType.ALL})
@PrimaryKeyJoinColumn(name = "user_id", referencedColumnName = "profile_id")
public Profile profile;
public Profile getProfile() {
return profile;
}
public void setProfile(Profile profile) {
this.profile = profile;
}
}
는 또한 게터를 추가/세터 프로필 :
public User getUser() {
return user;
}
public void setUser(User user) {
this.user = user;
}
을하지만, 내가 지금 hibernate.id.IdentifierGenerationException: null id generated for:class models.Profile
을 얻는 것. 정정하는 방법을 모르십니까?
감사
또한 모델에서 클래스를 모두 확장하는 것이 좋습니다.이 경우 모델 수퍼 클래스가이 작업을 수행하기 때문에 더 이상 id 필드를 선언 할 필요가 없습니다. –