我有这个 bean :
@Entity
@Table(name = "accesos")
public class Acceso implements Serializable {
/** */
@Column(name = "idUser")
private String idUser;
/** */
@ManyToOne
@JoinColumn(name = "idArea")
private Area area;
/** */
@ManyToOne
@JoinColumn(name = "idRol")
private Rol rol;
但是我得到这个错误:
Caused by: org.hibernate.AnnotationException: No identifier specified for entity: com...Acceso
我该如何设置这个bean?我需要的是根据用户ID得到他有权访问的所有ROL-AREA。
我尝试将@Entity
更改为@Embedded
,但是当我进行搜索时没有返回结果,甚至在日志中也没有执行SQL语句。
最佳答案
您必须为每个 bean 指定一个身份,这是没有办法的。但是,如果您的字段都不是唯一的,则可以使用组合键。
如果您所有字段的组合都是唯一的,则尝试使用 @Id
注释所有字段。使用尽可能少的字段,但要尽可能多,以使组合独一无二。
关于java - 如何设置没有@id 元素的@entity?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30712842/