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:
[code]
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;
}
}[/code]
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.