我无法在使用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;
...
}
还有会员信息类:
@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;
...
}
当我尝试从数据库中获取数据时,它会连接,但会抛出异常: &#34; HTTP状态500 - 模型上的@OneToOne或@ManyToOne.Memberinfo.role引用未知实体:model.Role&#34;。
如果我删除了变量&#34; Role&#34;,那么它可以工作,我可以获取成员资格数据,但我需要两个表之间的连接,但在这种情况下,前面提到的异常每次出现时间。
到目前为止,stackoverflow上没有其他解决方案对我有用。
知道我做错了什么?
答案 0 :(得分:7)
&#34;未知实体错误&#34;如果类实际上不是实体(没有注释whith javax.persistence @Entity)或者如果persitence提供者没有&#34;知道&#34;那么可以抛出班级(未扫描的包裹)。
在Memberinfo中导入的Role类是否正确?也许您正在从另一个库中导入另一个Role类。