我在尝试将应用程序部署到 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/