'Many To One'属性类型不应该是'Persistence Entity'

vph*_*nyc 24 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<>();
    //...
}
Run Code Online (Sandbox Code Playgroud)

多方:

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

   //...
   @ManyToOne(fetch=FetchType.EAGER)
   @JoinColumn(name="ASSIGNEE_ID")
   private MyRequestAssignee myRequestAssignee;
   //...
}
Run Code Online (Sandbox Code Playgroud)

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

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

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

Phi*_*ter 71

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

  • 将`<mapping class ="com.company.domain.MyRequestAssignee"/>`添加到hibernate.cfg.xml解决了这个问题. (3认同)
  • 如果您使用的是JPA,那么它可能是缺少persistence.xml中的一个条目. (2认同)
  • @TheChrisPratt 正确。或者它可能位于 Spring 的“LocalSessionFactoryBean”bean 配置的“annotatedClasses”属性中。 (2认同)