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

新手上路,请多包涵

我正在试用 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'. 我的关系有问题吗?

为了进行完整性检查,我也查看了 这篇文章这篇文章

原文由 vphilipnyc 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 938
2 个回答

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

原文由 Phil Carter 发布,翻译遵循 CC BY-SA 3.0 许可协议

我在 IntelliJ 中使用 Quarkus多模块 Gradle 项目中遇到了这个问题,其中我有一个从模块 A 的实体到模块 B 的实体的 OneToOne 引用。

在此处输入图像描述

该代码有效,所以我猜它可能是 IntelliJ 的错误标志

原文由 Marian Klühspies 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题