J'essaie de faire fonctionner l'exemple de la référence Hibernate.Erreur Hibernate: impossible de résoudre la table
J'ai un élève de table simple avec des champs identifiant, nom et âge. J'ai créé la bonne classe (comme je pense) java-class selon toutes les règles java-beans.
J'ai créé le fichier de configuration - hibernate.cfg.xml, comme dans l'exemple de la référence.
J'ai créé le mappage d'hibernation pour un élève de classe, et voici l'erreur qui s'est produite. Table = "pupilles" est rouge dans mon EDI et le message "ne peut pas résoudre les pupilles de la table" s'affiche. J'ai également fondé une note très étrange dans la référence qui dit que la plupart des utilisateurs échouent avec le même problème en essayant d'exécuter l'exemple.
Ah .. Je suis très en colère contre cet exemple .. À mon humble avis si les auteurs savent qu'il existe un tel problème, ils devraient ajouter quelques informations à ce sujet.
Mais, comment dois-je résoudre le problème? Je ne veux pas traiter avec Ant ici et avec d'autres instruments utilisés dans l'exemple. J'utilise MySQL 5.0, mais je pense que cela n'a pas d'importance.
UPD: code source
Pupil.java - ma classe persistante
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 est la cartographie de cette classe
<?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 - configuration pour hiberner
<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 - classe pour les tests mise en veille prolongée
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();
}
}
Mes libs: antlr-2.7.6.jar, asm.jar, asm-attrs .jar, cglib-2.1.3.jar, commons-collections-2.1.1.jar, commons-journalisation-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? outils jboss? avez-vous besoin de configurer les informations de connexion dans les préférences des outils jboss? – Surya
IntelliJ IDEA 7, Hibernate 3.2, jdk 1.6. Attendez, je vais ajouter le code – Roman