首页 > 解决方案 > 获取 BeanCreationException:未知实体名称:int:使用 JPA 休眠

问题描述

我是 Hibernate 的新手,我根据表定义编写了一个实体类,如下所示:

@Embeddable
class APK implements Serializable {
    private String bId;
    private int version; <---THIS IS CAUSING PROBLEM
}

@Entity
@Table(name = "a")
public class A implements Serializable {

    private static final long serialVersionUID = 1L;

    @EmbeddedId
    private APK aPK;


    @MapsId("bId")
    @ManyToOne
    @JoinColumn(name = "b_id", referencedColumnName = "id")
    private B b;

    @MapsId("version")
    @Column(name = "version")
    private int version;

    @Column(name = "name")
    private String name;

}

虽然,我正在启动服务器,但出现以下异常:

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 
'entityManagerFactory' defined in class path resource 
[org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation 
of init method failed; nested exception is org.hibernate.AnnotationException: Unknown entity 
name: int

在表定义类型中的版本是int. 但是为了解决这个问题,我什至尝试将版本类型更改为LongInteger但我总是遇到类似的错误。知道我应该如何解决这个问题吗?

标签: springhibernatejpa

解决方案


从 中删除@MapsId("version")注释private int version;,原因int不是Entity. 有关详细信息,请参阅此处


推荐阅读