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

被折叠的 条评论
为什么被折叠?



