[Resolvido]Classe não mapeada?

4 respostas
C
Olá a todos, estou usando netbeans para o meu projeto. Aconteceu que: Eu consigo dar update, delete e insert usando o Hibernate, porém quando vou dar um select(load) ele diz que a classe não está mapeada. Como eu montei esse projeto? Pelo próprio netbeans pedi para ele gerar o hibernate.cfg.xml e depois mapear as tabelas da minha database. Sendo assim, para cada tabela ele gerou um *******.hbm.xml como todos sabemos.
INFO: Reading mappings from resource : br/com/ragezone/l2jlee/model/Accounts.hbm.xml
28/04/2009 01:07:14 org.hibernate.cfg.HbmBinder bindRootPersistentClassCommonValues
INFO: Mapping class: br.com.ragezone.l2jlee.model.Accounts -> accounts
Tanto que vemos no log que ele lê. Mais abaixo o erro.
INFO: building session factory
28/04/2009 01:07:18 org.hibernate.impl.SessionFactoryObjectFactory addInstance
INFO: Not binding factory to JNDI, no JNDI name configured
Exception in thread "main" org.hibernate.hql.ast.QuerySyntaxException: accounts is not mapped [FROM accounts]
Abaixo a minha DAO:
public class AccountsDAO {

    SessionFactory sf = new Configuration().configure().buildSessionFactory();
    Session session;
    private static final String SQL_SELECT_BY_LOGIN = "FROM Accounts a where a.login= :login";

    public AccountsDAO() throws Exception {
        this.session = sf.openSession();
    }

    public void insertAcc(Accounts acc) throws Exception {
        session.save(acc);
        session.flush();
        session.close();
    }

    public void deleteAcc(Accounts acc) throws Exception {
        session.delete(acc);
        session.flush();
        session.close();
    }

    public Accounts searchAcc(String login) throws Exception {
        Query q = session.createQuery(SQL_SELECT_BY_LOGIN);
        q.setString("login", login);
        List result = q.list();

        Accounts acc = null;
        if (result.size() == 1) {
            acc = (Accounts) result.get(0);
        }
        return acc;

    }

    public List searchALL() {
        Query q = session.createQuery("FROM accounts");
        List list = q.list();
        return list;
    }
}
Mais abaixo a minha configuracao do Hibernate :
<?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.MySQLDialect</property>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/*****</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.connection.password">*****</property>
    <property name="hibernate.connection.autocommit">true</property>
    <mapping resource="br/com/ragezone/l2jlee/model/Accounts.hbm.xml"/>
  </session-factory>
</hibernate-configuration>
O netbeans tambem gerou um reveng.xml que ainda não sei para que realmente serve. Creio que tenha sido claro a minha dúvida, sou iniciante em hibernate e por isso, estou enfrentando esse problema. Espero que me ajudem, agradeço e boa noite.

4 Respostas

yoshikichi

Acho q não esta mapeado no hibernate.cfg.xml os XML das classes.
coloque o hibernate.cfg.xml aqui, para analisarmos.
Outra usa anotações.
falow

C

Agradeço amigo mas é só olhar aí encima está a minha configuração: hibernate.cfg.xml
^^
Anotações… mas não curti muito por deixar o código meio estranho. Prefiro assim ^^

fabiozoroastro

É nessa consulta que ocorre o erro?
Accounts precisa ter “A” maiúsculo.
Abraço.

C

Opaa valeu amigo, mas pensei que não era case sensitive o HQL. Valeu mesmo ^^

Criado 27 de abril de 2009
Ultima resposta 29 de abr. de 2009
Respostas 4
Participantes 3