mysql 非实物_jpa – EclipseLink – 非实体作为关系属性中...

本文描述了使用Netbeans IDE和EclipseLink时遇到的一个问题,即在新创建的实体类中出现EclipseLink-28018异常,提示目标实体在关系属性中不是实体。文章提供了出现问题的实体类代码及persistence.xml配置,并探讨了解决方案。

我使用的是Netbeans IDE 8.0.2和eclipselink 2.5.2.

在打开连接时,这种情况发生在下面,问题是每次都不会发生这种情况.

异常“Departmento”中描述的实体完全遵循其他类的模式,即我们的系统已经包含大约500个实体类,并且仅在新类中发生此异常.

该实体是由Netbeans的“数据库实体类”选项生成的,并添加到持久化XML …

Caused by: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Eclipse Persistence Services – 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.EntityManagerSetupException

Exception Description: Predeployment of PersistenceUnit [totemPU] failed.

Internal Exception: Exception [EclipseLink-7250] (Eclipse Persistence Services – 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException

Exception Description: [class entidade.Item] uses a non-entity [class entidade.Departamento] as target entity in the relationship attribute [field departamento].

实体Departamento

@Entity

@Table(name = "departamento")

@XmlRootElement

@NamedQueries({

@NamedQuery(name = "Departamento.findAll", query = "SELECT d FROM Departamento d"),

@NamedQuery(name = "Departamento.findById", query = "SELECT d FROM Departamento d WHERE d.departamentoPK.id = :id"),

@NamedQuery(name = "Departamento.findByIdEmpresa", query = "SELECT d FROM Departamento d WHERE d.departamentoPK.idEmpresa = :idEmpresa"),

@NamedQuery(name = "Departamento.findByDescricao", query = "SELECT d FROM Departamento d WHERE d.descricao = :descricao"),

@NamedQuery(name = "Departamento.findByLixo", query = "SELECT d FROM Departamento d WHERE d.lixo = :lixo"),

@NamedQuery(name = "Departamento.findByIp", query = "SELECT d FROM Departamento d WHERE d.ip = :ip")})

public class Departamento implements Serializable {

private static final long serialVersionUID = 1L;

@EmbeddedId

protected DepartamentoPK departamentoPK;

@Basic(optional = false)

@Column(name = "descricao")

private String descricao;

...

Getters() and Setters()

实体项目

@Entity

@Table(name = "item")

public class Item implements Serializable {

@EmbeddedId

protected ItemPK itemPK;

@JoinColumns({

@JoinColumn(name = "departamento_id", referencedColumnName = "id"),

@JoinColumn(name = "departamento_id_empresa", referencedColumnName = "id_empresa")})

@ManyToOne(optional = true)

private Departamento departamento;

...

Getters() and Setters()

persistence.xml中

org.eclipse.persistence.jpa.PersistenceProvider

entidade.Departamento

entidade.item

... More classes ...

在相同的persistence.xml中,有三个持久性单元.

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值