Ola,
Estou com um problema onde mesmo ao setar @ManyToOne(fetch=FetchType.LAZY) nos mapeamentos os objeto são carregados.
Percebi que eles são carregados até 2 níveis. Ou seja, no exemplo: Cidade tem um Estado, que tem um Pais, que tem um Continente.
Ao se carregar uma cidade, todos seus dados até Pais são carregados, apenas Continente que não.
Verifiquei em algumas referências que no eclipselink o fetch lazy para ManyToOne só funcionaria com weaving, hablitei o weaving como dynamic e mesmo assim não funciona.
Alguem já sabe o que pode estar ocorrendo?
Estou utilizando:
eclipselink v2.3.2 (já testei anteriores)
JBoss v7.1.1 final
Segue meu 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/persistence_2_0.xsd">
<persistence-unit name="PU_Negocio" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<shared-cache-mode>NONE</shared-cache-mode>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<jta-data-source>java:/ds1</jta-data-source>
<class>Classe1</class>
...
<class>ClasseN</class>
<shared-cache-mode>NONE</shared-cache-mode>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="eclipselink.target-server" value="JBoss" />
<property name="eclipselink.weaving" value="dynamic" />
<property name="eclipselink.weaving.lazy" value="true"/>
<property name="eclipselink.cache.shared.default" value="false" />
<property name="eclipselink.cache.size.default" value="0" />
<property name="eclipselink.cache.type.default" value="none" />
<property name="eclipselink.target-database" value="DB2" />
<property name="eclipselink.logging.level.sql" value="ALL"/>
<property name="jboss.as.jpa.providerModule" value="org.eclipse.persistence.jpa"/>
</properties>
</persistence-unit>
<persistence-unit name="PU_Seguranca" transaction-type="JTA">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<jar-file>../lib/security.jar</jar-file>
<exclude-unlisted-classes>false</exclude-unlisted-classes>
<shared-cache-mode>NONE</shared-cache-mode>
<jta-data-source>java:/ds2</jta-data-source>
<class>ClasseS1</class>
...
<class>ClasseSN</class>
<properties>
<property name="javax.persistence.jdbc.driver" value="com.ibm.db2.jcc.DB2Driver" />
<property name="eclipselink.target-server" value="JBoss" />
<property name="eclipselink.weaving" value="dynamic" />
<property name="eclipselink.weaving.lazy" value="true"/>
<property name="eclipselink.cache.shared.default" value="false" />
<property name="eclipselink.cache.size.default" value="0" />
<property name="eclipselink.cache.type.default" value="none" />
<property name="eclipselink.target-database" value="DB2"/>
<property name="eclipselink.logging.level.sql" value="ALL"/>
<property name="jboss.as.jpa.providerModule" value="org.eclipse.persistence.jpa"/>
</properties>
</persistence-unit>
</persistence>