java - 如何设置没有@id 元素的@entity?

标签 java hibernate

我有这个 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/

相关文章:

java - Spring Hibernate 中的多个数据库

mysql - 获取列名

java - JPA 引用 : are there any guarantees related to field contents?

java - 创建 bean entityManagerFactory 时出错,NoSuchMethodError : javax/persistence/Table. 索引

java - servlet 是否应该在 doGet/doPost 结束时显式返回?

java - 为什么以及在哪里调用 setLocale

java - 从 Java 8 切换到 Java 11

java - 在hadoop生态系统中,我使用Pig并陷入以下查询中?

java - 通用Java代码难懂?

java - 了解 hibernate : JDBCExceptionReporter | Invalid parameter index