Estoy usando EclipseLink 2.3.1 para modelar la tabla de autorreferenciación con JPA 2. Recibo una advertencia extraña de EclipseLink cuando creo EntityManager.No puedo entender la advertencia de EclipseLink
[EL Warning]: 2011-11-27 14:28:00.91--ServerSession(8573456)--Reverting the lazy setting on the OneToOne or ManyToOne attribute [redirectID] for the entity class [class lp.db.model.Site] since weaving was not enabled or did not occur.
No pude encontrar ninguna documentación sobre esta advertencia, y no estoy seguro de lo que significa. También quiero saber cómo resolver el problema que hace que aparezca esta advertencia ...
Soy nuevo en JPA, por lo que podría ser una tontería. Mi programa es realmente simple. Esta es la definición de la entidad:
@Entity
@Table(name="site")
public class Site implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@Column(name="site_id")
public String siteID;
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="redirect_id", referencedColumnName="site_id")
public Site redirectID;
@Column(name="name")
public String name;
}
Aquí está la persistence.xml:
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
<persistence-unit name="lpdb2" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>lp.db.model.Site</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/lpdb2"/>
<property name="javax.persistence.jdbc.user" value="blabla"/>
</properties>
</persistence-unit>
</persistence>
El código que hace que esta advertencia:
Persistence.createEntityManagerFactory("lpdb2").createEntityManager();
Tenga en cuenta que la EM es que resulta muy bien y pueden ser utilizado (por ejemplo) para encontrar elementos. Además, puedo recorrer el gráfico de entidades: puedo encontrar una entidad en la base de datos y luego obtener otra entidad usando el campo redirectID.
Gracias! Por alguna razón, salté este recurso. Lo revisaré. – gamliela
Tuve que agregar -javaagent: eclipselink.jar a la línea de comandos de JVM para que el tejido dinámico funcione. Ver http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Advanced_JPA_Development/Performance/Weaving/Dynamic_Weaving – Nathan