Hibernate映射错误
请问我用hibernate映射数据库,抱错,希望大家帮我分析一下:包错信息如下:
log4j:WARN No appenders could be found for logger (org.hibernate.cfg.Environment).
log4j:WARN Please initialize the log4j system properly.
org.hibernate.MappingException: Unknown entity: ch03.hibernate.User
at org.hibernate.impl.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:514)
at org.hibernate.impl.SessionImpl.getEntityPersister(SessionImpl.java:1302)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:89)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:186)
at org.hibernate.event.def.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:33)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:175)
at org.hibernate.event.def.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:27)
at org.hibernate.event.def.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:70)
at org.hibernate.impl.SessionImpl.fireSave(SessionImpl.java:530)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:518)
at org.hibernate.impl.SessionImpl.save(SessionImpl.java:514)
at ch03.hibernate.Test.main(Test.java:19)
以下是测试程序
User.java
package ch03.hibernate;
public class User
{
private int id;
private String username;
private String password;
private String email;
public void setId(int id)
{
this.id = id;
}
public int getId()
{
return this.id;
}
public void setUserName(String userName)
{
this.username = userName;
}
public String getUserName()
{
return this.username;
}
public void setPassword(String password)
{
this.password = password;
}
public String getPassWord()
{
return this.password;
}
public void setEmail(String email)
{
this.email = email;
}
public String getEmail()
{
return this.email;
}
}
测试类 Test.java
package ch03.hibernate;
import org.hibernate.*;
import org.hibernate.cfg.*;
public class Test
{
public static void main(String[] args)
{
try
{
SessionFactory sf = new Configuration().configure().buildSessionFactory();
Session session = sf.openSession();
Transaction tx = session.beginTransaction();
User user = new User();
user.setUserName("wujunjie");
user.setPassword("123");
session.save(user);
tx.commit();
session.close();
}
catch(HibernateException e)
{
e.printStackTrace();
}
}
}
以下是几个配置文件:
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">
<!-- Generated by MyEclipse Hibernate Tools. -->
<hibernate-configuration>
<session-factory>
<property name="connection.username">scott</property>
<property name="connection.url">jdbc:oracle:thin:@localhost:1521:ORAC</property>
<property name="dialect">org.hibernate.dialect.Oracle9Dialect</property>
<property name="myeclipse.connection.profile">OracleConnection</property>
<property name="connection.password">tiger</property>
<property name="connection.driver_class">oracle.jdbc.driver.OracleDriver</property>
</session-factory>
</hibernate-configuration>
用户配置文件 User.hbm.xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="ch03.hibernate.User" table="Myusertable">
<id name="id">
<generator class="increment"/>
</id>
<property name="username"/>
<property name="password"/>
<property name="email"/>
</class>
</hibernate-mapping>
另外还有几个问题:
<property name="username"/>
<property name="password"/>
<property name="email"/>
这里面name的名字是否要和类里面的字段名一模一样,与数据库的也是否要求一致.
还有到了最后一步怎么和类映射!也就是说我将表已经导人到了工程里面,最后映射表不只到怎么弄望大家赐教.版本 MyEclipse 5.0.1 因为原来用的老版本在表那直接点右键 Create Hibernate Mapping,但是现在这个版本我却不知道怎么直接映射,有谁知道吗?