【问题标题】:Hibernate "ManyToOne ... references an unknown entity" exceptionHibernate“ManyToOne ...引用未知实体”异常
【发布时间】:2016-03-08 05:22:49
【问题描述】:

我只是无法让我的两个类之间的关系通过 Hibernate 映射到 SQL 表。

角色类:

@Entity
@Table(name = "role")
public class Role {
    @Id 
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id")
    private int id;

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

    @OneToMany(mappedBy="memberinfo")
    private Set<Memberinfo> members;

    ...
}

还有 Memberinfo 类:

@Entity
@Table(name = "memberinfo")
public class Memberinfo {

    @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
    @Column(name="id", nullable = false)
    private int id;

    @Column(name = "userid", nullable = false)
    private String userid;

    @Column(name = "email", nullable = false)
    private String email;

    @Column(name = "password", nullable = false)
    private String password;

    @Column(name = "salt", nullable = false)
    private String salt;

    @Column(name = "name", nullable = false)
    private String name;

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

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

    @ManyToOne(targetEntity=Role.class)
    @JoinColumn(name="role_id")
    private Role role;

    ...
}

当我尝试从数据库中获取数据时,它会连接,但会引发异常: “HTTP 状态 500 - model.Memberinfo.role 上的 @OneToOne 或 @ManyToOne 引用了未知实体:model.Role”。

如果我删除变量“角色”,那么它可以工作,我可以获取成员数据,但我需要两个表之间的连接,但是在这种情况下,每次都会出现前面提到的异常。

到目前为止,没有其他关于 stackoverflow 的解决方案对我有用。

知道我做错了什么吗?

【问题讨论】:

    标签: java mysql hibernate exception servlets


    【解决方案1】:

    如果类实际上不是实体(未使用 javax.persistence @Entity 注释)或持久性提供者不“知道”类(未扫描包),则可能引发“未知实体错误”。

    Memberinfo 中导入的 Role 类是否正确?也许您正在从另一个库导入另一个 Role 类。

    【讨论】:

    • 导入是正确的。错误的原因很愚蠢:我忘记添加 cfg.addAnnotationClass(Role.class)。一个星期以来我一直试图找出这个错误,现在我觉得自己很愚蠢,尤其是我在寻求帮助后马上就弄清楚了。
    • 使用路径 n @ComponentScan('com......') 代替删除了该路径并使用了有效的@ComponentScan
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-27
    • 2015-09-22
    相关资源
    最近更新 更多