Я использую Netbeans IDE 8.0.2 и eclipselink 2.5.2. Это возникающее исключение ниже при открытии соединения, проблема в том, что это не происходит каждый раз. Сущность, описанная в исключении «Департамент», точно следует шаблону других классов, поскольку наша система уже содержит приблизительно 500 классов сущностей, и только в новых классах происходит это исключение. Этот объект был создан с помощью этой опции "Классы сущностей из базы данных" из Netbeans и добавил к persistense XML ...EclipseLink - не Entity как целевой объект в атрибуте отношения
Вызванный: javax.persistence.PersistenceException: Exception [EclipseLink-28018] (Затмения Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.EntityManagerSetupException Исключение Описание: Не удалось выполнить предварительную настройку PersistenceUnit [totemPU]. Внутреннее исключение: исключение [EclipseLink-7250] (Eclipse Persistence Services - 2.5.2.v20140319-9ad6abd): org.eclipse.persistence.exceptions.ValidationException Исключение Описание: [class entidade.Item] использует не-сущность [класс entidade.Departamento] как объект-мишень в атрибуте отношения [field departmentamento].
Entity 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 Item
@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
<persistence-unit name="totemPU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>entidade.Departamento</class>
<class>entidade.item</class>
... More classes ...
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://xxx"/>
<property name="javax.persistence.jdbc.password" value="xxx"/>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.user" value="xxx"/>
<property name="javax.persistence.jdbc.autoReconnect" value="true"/>
<property name="eclipselink.logging.session" value="false"/>
<property name="eclipselink.logging.level" value="OFF"/>
<property name="eclipselink.weaving" value="static"/>
<property name="eclipselink.query-results-cache" value="false"/>
</properties>
I В том же состоянии persistence.xml имеется еще три единицы устойчивости.
Да, я слышал, и я уже проверил это. Ошибка в этой строке «emf = (EntityManagerFactoryImpl) Persistence.createEntityManagerFactory (« totemPU »); '' –
Другое дело в структуре проектов ... У меня есть один проект для объектов, который создает .jar, этот .jar Я добавляю к другому проекту, где происходит ошибка. –
Я не уверен, что это проблема. Я добавил классы из другого проекта, который я включил в свой проект, и он отлично работает. Вы можете попытаться переместить объекты в том же проекте, с которым вы пытаетесь получить доступ к объектам, и посмотреть, работает ли он. Удачи! – dalia