私は、休止状態の参照からの例を機能させようとしています。
ID、名前、年齢フィールドを持つ単純なテーブル Pupil があります。すべてのJava-Beansルールに従って、正しい(私が思うに)Javaクラスを作成しました。
参照の例と同じように、構成ファイル-hibernate.cfg.xmlを作成しました。
1 つのクラス Pupil の休止状態マッピングを作成しましたが、ここでエラーが発生しました。
<hibernate-mapping>
<class name="Pupil" table="pupils">
...
</class>
</hibernate-mapping>
IDE で table="pupils" が赤く表示され、「表の生徒を解決できません」というメッセージが表示されます。私はまた、ほとんどのユーザーが例を実行しようとして同じ問題で失敗するという非常に奇妙なメモをリファレンスに見つけました。
ああ..私はこの例に非常に腹を立てています..私見作成者がそのような問題があることを知っている場合、それについての情報を追加する必要があります。
しかし、どうすれば直せますか?ここでの Ant や、例で使用されている他のツールについては扱いたくありません。MySql 5.0を使用していますが、問題ないと思います。
UPD: ソースコード
Pupil.java - 私の永続クラス
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 はこのクラスのマッピングです
<?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 - 休止状態の構成
<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 - 休止状態をテストするためのクラス
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 ();
}
}
私のライブラリ: 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
コンパイル エラー: テーブルの生徒を解決できません