Entendendo o entity Manager

Srs.

Gostaria de entender o que ocorre no trecho de código abaixo:

        System.out.println("DEBUG: Inicio CargoTabela");
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SACPU");
        System.out.println("DEBUG: Criou o EMF");
        EntityManager em = emf.createEntityManager();
        System.out.println("DEBUG: Criou o EM");
        
        em.getTransaction().begin();        
        System.out.println("DEBUG: em.begin");

        Query query = em.createNamedQuery("TcargoFuncEmpr.findAll");
        System.out.println("DEBUG: createNamedQuery");

        em.close();

No meu persistence.xml existem 2 classes POJO declaradas.
E no Construtor de cada uma eu mandei printar um "Instanciando classe… ":

Persistence.xml:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="1.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_1_0.xsd">
  <persistence-unit name="SACPU" transaction-type="RESOURCE_LOCAL">
    <provider>oracle.toplink.essentials.PersistenceProvider</provider>
    <class>lib.database.TcargoFuncEmpr</class>
    <class>lib.database.TpssoaRlcndSist</class>
    <properties>
      <property name="toplink.jdbc.user" value="root"/>
      <property name="toplink.jdbc.password" value="as13a3"/>
      <property name="toplink.jdbc.url" value="jdbc:mysql://localhost:3306/SAC"/>
      <property name="toplink.jdbc.driver" value="com.mysql.jdbc.Driver"/>
      <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
    </properties>
  </persistence-unit>
</persistence>

Construtor das classes:

TpssoaRlcndSist

    public TpssoaRlcndSist() {
        System.out.println("Instanciando TpssoaRlcndSist");
    }

TcargoFuncEmpr

    public TcargoFuncEmpr() {
        System.out.println("Instanciando TpssoaRlcndSist");
    }

Agora, a Saída gerada quando o código é executado:

init:
deps-jar:
compile-single:
run-single:
DEBUG: Inicio CargoTabela
DEBUG: Criou o EMF
[TopLink Info]: 2008.10.09 12:15:56.882--ServerSession(22201561)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
Instanciando TpssoaRlcndSist
[TopLink Info]: 2008.10.09 12:15:58.054--ServerSession(22201561)--file:/C:/Documents%20and%20Settings/eguimaraes/Meus%20documentos/NetBeansProjects/SAC/build/classes/-SACPU login successful
DEBUG: Criou o EM
DEBUG: em.begin
DEBUG: createNamedQuery
CONSTRUÍDO COM SUCESSO (tempo total: 5 segundos)

Porque a classe TpossaRlcndSist foi instanciada e a TcargoFuncEmpr não?

Para mim, mistério…

TcargoFuncEmpr é especialização de TpssoaRlcndSist ?

1- inverte a ordem das classes no persistence.xml
2- muda a msg de debug (ta igual nos dois construtores)

kdoigor,

Fiz o que você sugeriu, mas não adiantou.
A saída continua idêntica.

E não há nenhum tipo de relacionamento entre essas duas entidades.

Confere se ta tudo ok com o netbeans pq ta meio nebuloso esse erro.

Acredito que as configurações do netbeans estão ok porque, em outros ponto da aplicação, existem operações com a classe Tpssoa que funcionam.

Tá difícil…

Rode deste jeito:

        System.out.println("DEBUG: Inicio CargoTabela");
        EntityManagerFactory emf = Persistence.createEntityManagerFactory("SACPU");
        System.out.println("DEBUG: Criou o EMF");
        EntityManager em = emf.createEntityManager();
        System.out.println("DEBUG: Criou o EM");
        
        em.getTransaction().begin();        
        System.out.println("DEBUG: em.begin");

        Query query = em.createNamedQuery("TcargoFuncEmpr.findAll");
        Query query1 = em.createNamedQuery("TpssoaRlcndSist.findAll");
        System.out.println("DEBUG: createNamedQuery");

        em.close();

Veja o que acontece

Não adiantou também.

init:
deps-jar:
compile-single:
run-single:
DEBUG: Inicio CargoTabela
DEBUG: Criou o EMF
[TopLink Info]: 2008.10.09 04:03:04.440--ServerSession(22201561)--TopLink, version: Oracle TopLink Essentials - 2.0.1 (Build b09d-fcs (12/06/2007))
Instanciando TpssoaRlcndSist
[TopLink Info]: 2008.10.09 04:03:07.283--ServerSession(22201561)--file:/C:/Documents%20and%20Settings/eguimaraes/Meus%20documentos/NetBeansProjects/SAC/build/classes/-SACPU login successful
DEBUG: Criou o EM
DEBUG: em.begin
DEBUG: createNamedQuery
CONSTRUÍDO COM SUCESSO (tempo total: 9 segundos)

Continua instanciando somente a classe TpssoaRlcndSist…