0

データベースからオブジェクトを読み込んでいますが、次の例外が発生しました。休止状態のアプリケーションでエラーを見つけるのに疲れました。助けてください。

例外

スレッド「メイン」での例外 org.hibernate.InvalidMappingException: org.hibernate.cfg.Configuration の org.hibernate.cfg.Configuration.addResource(Configuration.java:569) のリソース Select.hbm.xml からマッピング ドキュメントを解析できませんでした。 parseMappingElement(Configuration.java:1587) org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1555) org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1534) org.hibernate.cfg.Configuration .doConfigure(Configuration.java:1508) の org.hibernate.cfg.Configuration.configure(Configuration.java:1428) の com.java4s.select.SelectMain.main(SelectMain.java:12) 原因: org.hibernate. MappingException: プロパティの検索中にクラス com.java4s.select.Select.java が見つかりません: org.hibernate.util.ReflectHelper の sno。ReflectionPropertyClass(ReflectHelper.java:74) org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276) org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:401) org.hibernate.cfg.HbmBinder org.hibernate.cfg の .bindRootPersistentClassCommonValues(HbmBinder.java:334) org.hibernate.cfg の HbmBinder.bindRootClass(HbmBinder.java:273) org.hibernate.cfg.Configuration.addInputStream(Configuration.java:504) の Configuration.add(Configuration.java:669) org.hibernate.cfg.Configuration.addResource(Configuration.java:566) の Configuration.add(Configuration.java:669) 原因: java.lang .ClassNotFoundException: com.java4s.select.Select.java at java.net.URLClassLoader$1.run(未知のソース) at java.net.URLClassLoader$1.java.security.AccessController.doPrivileged (Native Method) で java.net.URLClassLoader.findClass (未知のソース) で (未知のソース) を実行し、sun.misc.Launcher$AppClassLoader で java.lang.ClassLoader.loadClass (未知のソース) で実行します。 org.hibernate.util.ReflectHelper の java.lang.Class.forName (未知のソース) で java.lang.ClassLoader.loadClass (未知のソース) で java.lang.Class.forName0 (ネイティブ メソッド) で loadClass (未知のソース)。 classForName(ReflectHelper.java:100) at org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70) ... 14 詳細org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100) で java.lang.Class.forName (未知のソース) で java.lang.Class.forName0 (ネイティブ メソッド) で ClassLoader.loadClass (不明なソース) .hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70) ... 14 詳細org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:100) で java.lang.Class.forName (未知のソース) で java.lang.Class.forName0 (ネイティブ メソッド) で ClassLoader.loadClass (不明なソース) .hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:70) ... 14 詳細

Select.java

public class Select {
private int sno;
private String uname;
private String pass;

public int getSno() {
    return sno;
}
public void setSno(int sno) {
    this.sno = sno;
}
public String getUname() {
    return uname;
}
public void setUname(String pass) {
    this.pass =pass;
}
public String getPass() {
    return pass;
}
public void setPass(String pass) {
    this.pass =pass;
}


}

SelectMain.java

import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.cfg.Configuration;

public class SelectMain {

public static void main(String[] args) {

Configuration cfg=new Configuration();
cfg.configure("Hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
Object o=session.load(Select.class,new Integer(1));
Select s=(Select) o;
System.out.println(s.getUname());
}
}

Hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">

<hibernate-configuration>
<session-factory>    
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/world</property>
<property name="connection.username">root</property>
<property name="connection.password">root</property>    
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="show_sql">true</property>
<property name="hbm2dll.auto">update</property>    
<mapping resource="Select.hbm.xml"></mapping>
</session-factory>    
</hibernate-configuration>

Select.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>
<class name="com.java4s.select.Select.java" table="product1">   
<id name="sno" column="sno"/>    
<property name="uname" column="uname"/>    
<property name="pass" column="pass"/>    
</class>
</hibernate-mapping>
4

3 に答える 3

0

Select.hbm.xml ファイル class name="com.java4s.select.Select.java" table="product1" で、この行を以下のように変更します class name="com.java4s.select.Select" table="product1"

クラス名のみを指定する必要があります。.java は必要ありません。

于 2013-08-23T08:48:26.540 に答える
0

Select.hbm.xml ファイルのクラス名 <class name="com.java4s.select.Select.java" table="product1"><class name="com.java4s.select.Select" table="product1">

于 2016-06-29T07:01:03.217 に答える