Entidade não mapeada

6 respostas
Joe_Junior

Estou criando um sisteminha como projeto na faculdade e resolvi usar o Hibernate para me ajudar na persistência, porém estou tendo alguns problemas. Gostaria que alguém me ajudasse a resolvê - los:

Um exemplo do código que estou usando:

public class Main {

    private static Configuration hibConfig;
    private static String mapping = "hibernate.cfg.xml";

    public static void main(String args[]) {
        hibConfig = new Configuration();
        File file = new File( mapping );
        
        if( file.exists() ){
            hibConfig.configure( file );
        }
        else{
            java.net.URL url = Main.class.getClassLoader().getResource( mapping );
            System.out.println("URL: " + url);
            if( url != null)
                hibConfig.configure( "model\\" + file );
            else {
                throw new RuntimeException("Couldn't find mapping file: " + mapping);
            }
        }
        
        Session s = HibernateUtil.getSessionFactory().openSession();

        Query q = s.createQuery("from Parentesco");
        List l = q.list();
        System.out.println(l.size());
        Parentesco p = new Parentesco((short)1, "mapping");
        
        DaoParentesco.insert(p);
    }
}

Meu hibernate.cfg.xml:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
  <session-factory>
    <property name="hibernate.dialect">org.hibernate.dialect.FirebirdDialect</property>
    <property name="hibernate.connection.driver_class">org.firebirdsql.jdbc.FBDriver</property>
    <property name="hibernate.connection.url">jdbc:firebirdsql://localhost:3050/C:/BDPAP.FDB</property>
    <property name="hibernate.connection.username">sysdba</property>
    <property name="hibernate.connection.password">masterkey</property>
    <mapping class="model.Usuario" resource="model/Usuario.hbm.xml"/>
    <mapping class="modelResponsavelaluno" resource="model/Responsavelaluno.hbm.xml"/>
    <mapping class="model.Aluno" resource="model/Aluno.hbm.xml"/>
    <mapping class="model.Responsavel" resource="model/Responsavel.hbm.xml"/>
    <mapping class="model.Turma" resource="model/Turma.hbm.xml"/>
    <mapping class="model.ProfAcesso" resource="model/ProfAcesso.hbm.xml"/>
    <mapping class="model.Mensagem" resource="model/Mensagem.hbm.xml"/>
    <mapping class="model.Professor" resource="model/Professor.hbm.xml"/>
    <mapping class="Usuario" file="" jar="" package="model" resource="model/Usuario.hbm.xml"/>
    <mapping class="Parentesco" file="" jar="" package="model" resource="model/Parentesco.hbm.xml"/>
  </session-factory>
</hibernate-configuration>

Eu estou tentando inserir um Parentesco novo, simples porque não preciso de nenhum relacionamento para inseri - lo.

Segue minha classe de persistência Parentesco:

package model;
// Generated 10/06/2011 22:47:41 by Hibernate Tools 3.2.1.GA
import java.util.HashSet;
import java.util.Set;
/**
 * Parentesco generated by hbm2java
 */
public class Parentesco  implements java.io.Serializable {
     private short tipo;
     private String descricacao;
     private Set responsavels = new HashSet(0);
    public Parentesco() {
    }
    public Parentesco(short tipo, String descricacao) {
        this.tipo = tipo;
        this.descricacao = descricacao;
    }
    public Parentesco(short tipo, String descricacao, Set responsavels) {
       this.tipo = tipo;
       this.descricacao = descricacao;
       this.responsavels = responsavels;
    }
    public short getTipo() {
        return this.tipo;
    }
    public void setTipo(short tipo) {
        this.tipo = tipo;
    }
    public String getDescricacao() {
        return this.descricacao;
    }
    public void setDescricacao(String descricacao) {
        this.descricacao = descricacao;
    }
    public Set getResponsavels() {
        return this.responsavels;
    }
    public void setResponsavels(Set responsavels) {
        this.responsavels = responsavels;
    }
}

Por fim meu arquivo de mapeamento de Parentesco:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated 10/06/2011 22:47:42 by Hibernate Tools 3.2.1.GA -->
<hibernate-mapping>
  <class name="model.Parentesco" table="PARENTESCO">
    <id name="tipo" type="short">
      <column name="TIPO"/>
      <generator class="native">
        <param name="sequence">GEN_PARENTESCO</param>
      </generator>
    </id>
    <property name="descricacao" type="string">
      <column length="20" name="DESCRICACAO" not-null="true"/>
    </property>
    <set inverse="true" name="responsavels">
      <key>
        <column name="PARENTESCO" not-null="true"/>
      </key>
      <one-to-many class="model.Responsavel"/>
    </set>
  </class>
</hibernate-mapping>

Acontece que quando executo o método main que passei ali em cima ele me retorna o seguinte erro:

[color=red]INFO: Not binding factory to JNDI, no JNDI name configured
17/06/2011 10:30:15 org.hibernate.hql.QuerySplitter concreteQueries
AVISO: no persistent classes found for query class: from model.Parentesco
0
Exception in thread "main" org.hibernate.MappingException: Unknown entity: model.Parentesco

[/color]Alguém sabe o que pode ser ?

Obrigado.

6 Respostas

Z111

aparentemente, não está encontrando a classe Parentesco dentro do pacote model. Acontece com outras entidades tb?

drsmachado

Joe Jonas, favor ler isto http://www.guj.com.br/java/50115-voce-e-novo-no-guj-vai-criar-um-topico-e-colar-seu-codigo-fonte-leia-aqui-antes-por-favor e corrigir teu tópico.

Joe_Junior

drsmachado, corrigido, me desculpe.

Z, me desculpe a ignorância, mas entrei em blibliotecas clicando em proriedades no meu projeto no netbeans e não achei o jar que você disse. Como faço para adicioná - lo.

Obrigado.

Joe_Junior

Bom, olhei com mais atenção e realmente esse jar está la sim. Hibernate - jta.jar

Z111

faz um tempo que não uso hibernate, mas se as classes estão mapeadas corretamente, resta as bibliotecas.

verifica seus imports e posta, por favor…

Joe_Junior

Segue minha biblioteca:

Alguma outra sugestão ?

Criado 17 de junho de 2011
Ultima resposta 17 de jun. de 2011
Respostas 6
Participantes 3