私は2つの単純なテーブルUserとUser_Rolesを持っています。私は、フィールドemail
を持っていると私はUserEntityから負荷User_Rolesをしたい両方のテーブルに は、クエリは次のようになります。JPA - エンティティ@OneToOneのマッピングの繰り返し列
SELECT *
FROM Users u, User_Roles ur
WHERE u.email = ur.email;
私は「リンク」私はエラーを取得し、電子メールフィールドは、「エンティティのマッピングでコラムを繰り返ししようとすると、 :UserEntityカラム:email "
私は組み合わせのいずれかの種類(mappedBy、refColumnなど)を追加しようとしましたが、エラーが同じであっても...
ユーザー
@Entity
@Table(name = "users")
public class UserEntity implements Serializable {
private static final long serialVersionUID = 1L;
private long id;
private String email;
private UserRolesEntity roles;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Basic
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@OneToOne
@JoinColumn(name = "email")
public UserRolesEntity getRoles() {
return roles;
}
public void setRoles(UserRolesEntity roles) {
this.roles = roles;
}
}
User_Roles
@Entity
@Table(name = "user_roles")
public class UserRolesEntity {
private long id;
private String email;
private String role;
@Id
@Column(name = "user_role_id")
@GeneratedValue(strategy = GenerationType.IDENTITY)
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
@Basic
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
@Basic
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
あなたは1-1の関係を持っているので、NE UserRolesEntityクラスのFKを編集しました。タイプLONGのアイデンティティーを持つものにForeignKeyとしてSTRINGフィールドを使用することはできません! –
私はこのようなことを疑っていました....以前はFKの注釈を使用していましたが....あなたはUserRolesEntityを修正する必要があると教えてください。次はその上で、私は将来のあなたのソリューションを勉強します...ありがとうたくさん... – Mistre83
変更?他のクラスから@JoinColumn(name = "email")を削除します。 1-1のリレーションはJPAドキュメントにあります –