Estoy intentando hacer que el trabajo sea el ejemplo de la referencia de hibernación.Error de hibernación: no se puede resolver la tabla
Tengo una tabla simple Alumno con id, nombre y campos de edad. Creé una clase Java correcta (como creo) para ella de acuerdo con todas las reglas de java-beans.
He creado el archivo de configuración - hibernate.cfg.xml, como en el ejemplo de referencia.
He creado el mapeo de hibernación para una clase Pupil, y aquí está el error.
<hibernate-mapping>
<class name="Pupil" table="pupils">
...
</class>
</hibernate-mapping>
table = "pupils" es de color rojo en mi IDE y veo el mensaje "no se puede resolver la mesa de los alumnos". También he fundado una nota muy extraña en referencia que dice que la mayoría de los usuarios falla con el mismo problema al intentar ejecutar el ejemplo.
Ah ... Estoy muy enojado con este ejemplo .. En mi humilde opinión, si los autores saben que existe tal problema, deberían agregar algo de información al respecto.
Pero, ¿cómo debería solucionarlo? No quiero tratar con Ant aquí y con otros instrumentos utilizados en el ejemplo. Estoy usando MySql 5.0, pero creo que no importa.
UPD: código fuente
Pupil.java - mi clase persistente
package domain;
public class Pupil {
private Integer id;
private String name;
private Integer age;
protected Pupil() { }
public Pupil (String name, int age) {
this.age = age;
this.name = name;
}
public Integer getId() {
return id;
}
public void setId (Integer id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName (String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge (Integer age) {
this.age = age;
}
public String toString() {
return "Pupil [ name = " + name + ", age = " + age + " ]";
}
}
Pupil.hbm.xml es mapeado para esta clase
<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="domain" >
<class name="Pupil" table="pupils">
<id name="id">
<generator class="native" />
</id>
<property name="name" not-null="true"/>
<property name="age"/>
</class>
</hibernate-mapping>
hibernate.cfg.xml - Configuración para hibernar
<hibernate-configuration>
<session-factory>
<!-- Database connection settings -->
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost/hbm_test</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
<property name="current_session_context_class">thread</property>
<property name="show_sql">true</property>
<mapping resource="domain/Pupil.hbm.xml"/>
</session-factory>
</hibernate-configuration>
HibernateUtils.java
package utils;
import org.hibernate.SessionFactory;
import org.hibernate.HibernateException;
import org.hibernate.cfg.Configuration;
public class HibernateUtils {
private static final SessionFactory sessionFactory;
static {
try {
sessionFactory = new Configuration().configure().buildSessionFactory();
} catch (HibernateException he) {
System.err.println (he);
throw new ExceptionInInitializerError (he);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Runner.java - clase para las pruebas de hibernación
import org.hibernate.Session;
import java.util.*;
import utils.HibernateUtils;
import domain.Pupil;
public class Runner {
public static void main (String[] args) {
Session s = HibernateUtils.getSessionFactory().getCurrentSession();
s.beginTransaction();
List pups = s.createQuery ("from Pupil").list();
for (Object obj : pups) {
System.out.println (obj);
}
s.getTransaction().commit();
HibernateUtils.getSessionFactory().close();
}
}
Mis libs: antlr-2.7.6.jar, asm.jar, ASM-attrs .jar, cglib-2.1.3.jar, commons-collections-2.1.1.jar, commons-logging-1.0.4.jar, dom4j-1.6.1.jar, hibernate3.jar, jta.jar, log4j-1.2 .11.jar, mysql-connector-java-5.1.7-bin.jar
Compile error: cannot resolve table pupils
ide? herramientas jboss? ¿necesita configurar la información de conexión en las preferencias de las herramientas jboss? – Surya
IntelliJ IDEA 7, Hibernate 3.2, jdk 1.6. Espera, agregaré el código – Roman