我想就如何最好地佈局我的JPA實體類提供一些建議。假設我有兩個表格,我想將它們建模爲實體,用戶和角色。映射JPA實體關係
Create Table users(user_id primary key,
role_id integer not null)
Create table role(role_id primary key,
description text,
)
我創建以下兩個JPA實體:
@Entity
@Table(name="users")
@Access(AccessType.PROPERTY)
public class User implements Serializable {
private Long userId;
private Long roleId;
private Role role;
@Column(name = "user_id")
@Id
public Long getUserId() {}
@Column(name = "role_id")
public Long getRoleId() {}
@ManyToOne()
JoinColumn(name="role_id")
public Role getRole() {}
}
角色實體:
@Entity
@Table(name="Role")
@Access(AccessType.PROPERTY)
public class Role implements Serializable {
private String description;
private Long roleId;
@Column(name = "role_id")
@Id
public Long getRoleId() {}
@Column(name = "description")
public Long getDescrition(){}
@ManyToOne()
@JoinColumn(name="role_id")
public Role getRole() {}
}
會以正確的方式來這種關係模型如上,否則我將放棄私人long roleId;在用戶中?歡迎任何意見。 當我這樣映射它,我收到以下錯誤:
org.hibernate.MappingException: Repeated column in mapping for entity:
你真的希望將用戶限制爲具有正好一個(或無)'Role'? – millhouse 2012-01-17 01:57:43
@角色。在這個應用程序中,是的,他們應該只有1個角色。 – 2012-01-17 02:15:54