java - EclipseLink ValidationException - 非实体 [class long] 作为关系属性 [fieldproviderId] 中的目标实体

标签 java jpa glassfish eclipselink

我在尝试将应用程序部署到 Glassfish 时收到以下错误。显然我的人际关系出了问题。

尝试部署时 Glassfish 服务器出现错误:

        ValidationException Exception Description: [class edu...clinic.Treatment] 
uses a non-entity [class long] as target entity in the relationship attribute 
[field providerId]

我的“Treatment”类文件中的多对一关系:

@Entiity
... 
@ManyToOne
    @JoinColumn(name = "provider_fk", referencedColumnName = "npi")
    private long providerId;

我的“Provider”类文件中的一对多关系:

 @Entity
    ...
@Id
    @Column(name = "NPI")
    private long npi;
...
    @OneToMany(mappedBy = "providerId", targetEntity=Treatment.class)
        @OrderBy
        private List<Treatment> treatments;

我相信我的注释是正确的,但有些地方不对劲。如果您有任何有关如何纠正此问题的建议,我将不胜感激。

最佳答案

尝试以下操作, 在治疗实体变化

private long providerId;

private Provider provider;

在提供商实体更改中

@OneToMany(mappedBy = "providerId", targetEntity=Treatment.class)

@OneToMany(mappedBy = "provider", targetEntity=Treatment.class)

关于java - EclipseLink ValidationException - 非实体 [class long] 作为关系属性 [fieldproviderId] 中的目标实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15263002/

相关文章:

Java 鼠标位置计算滚动的区域

java - AngularJS 和 Servlet 集成

java - 如何读取查询参数键和值

java - 当我们使用 hibernate 创建主键时,我们使用 @Id 作为注释,但是应该使用什么注释来定义外键

java - EJB,两个应用程序服务器之间的远程处理(glassfish)

java - 在Java中将变量返回到第二帧

java - 在 CQL 中使用 IN 条件作为分区键,不会降低性能

java - 当不级联字段时,是否需要使用@Transient?

java - 配置 Glassfish SSL 证书昵称的正确方法?

java - JSR-353 如何使用 javax.json.JsonObjectBuilder 添加空值