“多对一”属性类型不应为“持久性实体”

2022-09-01 03:30:54

我正在尝试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只是一个具有确保Hibernate可以访问它的属性的接口。id

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

为了进行健全性检查,我也看了这篇文章这篇文章


答案 1

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


答案 2

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


推荐