'多对一'属性类型不应该是“持久性实体”

时间:2015-08-20 16:38:13

标签: java hibernate intellij-idea

我正在尝试IntelliJ IDEA,它警告我一个我不太了解的Hibernate协会。

一方:

@Entity
@Table(name = "MY_REQ_ASSIGNEE")
public class MyRequestAssignee extends BaseUser {
    //...
    @OneToMany(fetch = FetchType.EAGER, cascade = {CascadeType.ALL}, mappedBy = "myRequestAssignee")
    private Collection<MyRequest> myRequests = new ArrayList<>();
    //...
}

多方:

@Entity
@Table(name = "MY_REQUEST")
public class MyRequest implements Persistable {

   //...
   @ManyToOne(fetch=FetchType.EAGER)
   @JoinColumn(name="ASSIGNEE_ID")
   private MyRequestAssignee myRequestAssignee;
   //...
}

Persistable只是一个具有id属性的接口,以确保Hibernate可以访问它。)

我看到MyRequestAssignee类型用红色下划线,消息显示为'Many To One' attribute type should not be 'Persistence Entity'.我的关系有问题吗?

为了进行健全性检查,我也查看了this postthis post

2 个答案:

答案 0 :(得分:66)

我发现这是由于未在hibernate.cfg.xml中定义子实体引起的。可以改进错误消息。

答案 1 :(得分:0)

这个问题有点陈旧,但我只是想补充一点,这也可能是由于冲突的hibernate .hbm映射文件和JPA注释引起的。在将旧映射文件转换为注释时忘记注释掉其中一个旧映射文件时遇到此错误消息。