当前位置:  开发笔记 > 编程语言 > 正文

Hibernate"ManyToOne ...引用未知实体"异常

如何解决《Hibernate"ManyToOne引用未知实体"异常》经验,为你挑选了1个好方法。

我只是无法使用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 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 - 模型上的@OneToOne或@ManyToOne.Memberinfo.role引用未知实体:model.Role".

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

到目前为止,stackoverflow上没有其他解决方案对我有用.

知道我做错了什么吗?



1> Giuseppe..:

如果类实际上不是实体(未注释whith javax.persistence @Entity)或者persitence提供者不"知道"类(包未扫描),则可以抛出"未知实体错误".

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


进口是正确的.错误的原因很愚蠢:我忘了添加cfg.addAnnotationClass(Role.class).我试图弄清楚这个错误,因为一个星期,现在我觉得很愚蠢,特别是我在寻求帮助后立即弄明白.
推荐阅读
mobiledu2402851173
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有