Я хотел бы получить несколько советов о том, как лучше расположить мои классы сущностей JPA. Предположим, у меня есть 2 таблицы, которые я хотел бы смоделировать как сущности, пользователя и роль.
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: