2016-08-17 4 views
0

私は、プロパティをJavaクラスから データベーステーブルにマップするサンプルタスクを作成しています。しかし、私は例外を生成しているので、それを行うことができません クラスが見つかりません。設定でパスを正しく設定しても、ファイル が正しく設定されています。ここに私のプロジェクトのサンプルコードはあるプロパティをデータベーステーブルにマッピングするためのHibernateの設定

Student.java 
____________ 
package beans; 

public class Student { 
private int id; 
private String name; 
private String email; 
public int getId() { 
    return id; 
} 
public void setId(int id) { 
    this.id = id; 
} 
public String getName() { 
    return name; 
} 
public void setName(String name) { 
    this.name = name; 
} 
public String getEmail() { 
    return email; 
} 
public void setEmail(String email) { 
    this.email = email; 
} 
} 

Student.hbm.xml 
__________________ 
<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD//EN" 
"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 
<class name="beans.Student" table="Student"> 
<id name="id" column="id"/> 
<property name="name" column="name"/> 
<property name="email" column="email"/> 
</class> 
</hibernate-mapping> 

hibernate.cfg.xml 
___________________ 
<?xml version="1.0" encoding="UTF-8"?> 

<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd"> 
<hibernate-configuration> 
<session-factory> 
<property  
name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property> 
<property 
name="hibernate.connection.url">jdbc:mysql://localhost/loginuser</property> 
<property name="hibernate.connection.username">root</property> 
<property name="hibernate.connection.password">root</property> 
<property name="dialect">org.hibernate.dialect.MySQLDialect</property> 
<property name="hbm2ddl.auto">create</property> 
<mapping resource="beans/Student.java"></mapping> 
</session-factory> 
</hibernate-configuration> 

Client.java 
________________ 
package test; 

import org.hibernate.cfg.Configuration; 

public class Client { 

public static void main(String[] args) { 
    Configuration cfg=new Configuration(); 
    cfg.configure("resources/hibernate.cfg.xml"); 
    cfg.buildSessionFactory(); 
} 
} 

Error Stack Trace 
________________ 
log4j:WARN No appenders could be found for logger 
(org.hibernate.cfg.Environment). 
log4j:WARN Please initialize the log4j system properly. 
Exception in thread "main" org.hibernate.MappingNotFoundException: resource: 
beans/Student.java not found 
at org.hibernate.cfg.Configuration.addResource(Configuration.java:517) 
at org.hibernate.cfg.Configuration.parseMappingElement 
(Configuration.java:1511) 
at org.hibernate.cfg.Configuration.parseSessionFactory 
(Configuration.java:1479) 
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1458) 
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1432) 
at org.hibernate.cfg.Configuration.configure(Configuration.java:1352) 
at test.Client.main(Client.java:9) 

答えて

0

マッピングファイルへの地図ではないエンティティ自体

<mapping resource="Student.hbm.xml"/> 
+0

にする必要がありますlog4j:WARN logger(org.hibernate.cfg.Environment)のアペンダーが見つかりませんでした。 log4j:WARN log4jシステムを正しく初期化してください。 –

+0

これは別の問題です。 log4j設定ファイルにロガーを作成していない可能性があります。それを見ることなく、私たちは確信することはできません.... – Reimeus

0

マッピングは、私は1つのことを試してみましたHBMファイルではなく、クラスファイル

+0

私はその1つも試みましたが、エラーが "log4j:WARN"なのでプロジェクトを実行できませんでした。ロガー(org.hibernate.cfg.Environment)のアペンダーは見つかりませんでした。 log4j:WARN log4jシステムを正しく初期化してください。 –

+0

問題を解決するlog4j依存関係を追加してみてください –

関連する問題