我想就如何最好地布局我的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