Hibernate error: cannot resolve Tabelle

Ich versuche, etwas zu arbeiten, das Beispiel aus der hibernate-Referenz.

Ich habe eine einfache Tabelle Schüler mit id, name und Alter Felder. Ich habe richtige (wie ich denke) java-Klasse für die es nach allen java-beans Regeln.

Hab ich erstellte Konfigurationsdatei - hibernate.cfg.xml genau wie in dem Beispiel aus der Referenz.

Habe ich hibernate-mapping für eine Klasse Schülerin, und hier ist der Fehler aufgetreten ist.

<hibernate-mapping>
   <class name="Pupil" table="pupils">
       ...
   </class>
</hibernate-mapping>

Tabelle="Schüler /innen" rot ist in meiner IDE, und ich sehe Meldung "cannot resolve Tabelle "Schüler". Ich habe wurde auch sehr seltsame Hinweis in der Referenz, die besagt, dass die meisten Benutzer nicht mit dem gleichen problem versucht, um das Beispiel auszuführen.

Ah.. ich bin sehr verärgert mit diesem Beispiel.. IMHO, wenn Autoren wissen, dass es solches problem, sollten Sie fügen Sie einige Informationen über es.

Aber, wie soll ich es beheben? Ich will nicht zu viel mit Ant hier und mit anderen Instrumenten verwendet werden, im Beispiel. Ich bin mit MySql 5.0, aber ich denke, es spielt keine Rolle.

UDP: Quell-code

Pupil.java - mein persistente 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 die Zuordnung 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 hibernate

<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 hibernate

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 ();
    }
}

Meine 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

Kompilieren-Fehler: cannot resolve Tabelle Schüler

  • ide ? jboss tools? Sie benötigen zum konfigurieren der Verbindung die Informationen, die in der jboss-tools-Einstellungen ?
  • IntelliJ IDEA 7, Hibernate 3.2, jdk 1.6. Warten Sie, ich werde hinzufügen von code
InformationsquelleAutor Roman | 2009-06-09
Schreibe einen Kommentar