nicht auflösen Ich versuche, Arbeit das Beispiel aus Hibernate-Referenz zu machen.Hibernate-Fehler: kann Tabelle
Ich habe einfache Tabelle Schüler mit ID, Name und Alter Felder. Ich habe die korrekte (wie ich denke) Java-Klasse dafür nach allen Java-Beans-Regeln erstellt.
Ich habe Konfigurationsdatei erstellt - hibernate.cfg.xml, genau wie im Beispiel aus Referenz.
Ich habe Hibernate Mapping für eine Klasse Schüler erstellt, und hier ist der Fehler aufgetreten.
table = "Schüler" ist rot in meiner IDE und ich sehe Nachricht "kann Tabelle Schüler nicht auflösen". Ich habe auch sehr seltsame Anmerkung in der Referenz gegründet, die besagt, dass die meisten Benutzer mit dem gleichen Problem fehlschlagen, das versucht, das Beispiel auszuführen.
Ah .. Ich bin sehr sauer auf dieses Beispiel .. IMHO, wenn Autoren wissen, dass es ein solches Problem gibt, sollten sie einige Informationen darüber hinzufügen.
Aber wie soll ich es beheben? Ich möchte hier nicht mit Ant und mit anderen im Beispiel verwendeten Instrumenten umgehen. Ich benutze MySql 5.0, aber ich denke es ist egal.
UPD: Quellcode
Pupil.java - meine persistenten Klasse
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 ist Mapping für diese Klasse
<?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 - Konfiguration für den Winterschlaf
<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 - Klasse für die Prüfung überwintern
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();
}
}
Mein 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? jboss Werkzeuge? Müssen Sie die Verbindungsinformationen in den jboss tools preferences konfigurieren? – Surya
IntelliJ IDEA 7, Hibernate 3.2, jdk 1.6. Warten Sie, ich füge Code – Roman