首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Eclipse开发 >

eclipse中使用Hibernate遇到奇怪有关问题

2011-12-31 
eclipse中使用Hibernate遇到奇怪问题本人使用的eclipse版本:3.2Hibernate版本:3.0Mysql版本:5.0在工程中将

eclipse中使用Hibernate遇到奇怪问题
本人使用的eclipse版本:3.2
                    Hibernate版本:3.0
                    Mysql版本:5.0
在工程中将Hibernate的包悉数导入,并且将Mysql的驱动包导入。
下面是本人的开发详细过程:
1、在数据库中创建myproject库。
2、在库中创建myusertabale表,其中包含字段:id(int,PK)   ,UserName,Password,Email。
3、在工程中创建JavaBean:   User,其中包含表中的4个字段的变量以及get,set方法。
4、在eclipse中生成Hibernate映射文件User.hbm.xml,和配置文件hibernate.cfg.xml。
5、在工程中创建测试类Test。
完成后尝试运行爆出异常:
log4j:WARN   No   appenders   could   be   found   for   logger   (org.hibernate.cfg.Environment).
log4j:WARN   Please   initialize   the   log4j   system   properly.
org.hibernate.MappingException:   Could   not   read   mappings   from   resource:   ch03/hibernate/User.hbm.xml
at   org.hibernate.cfg.Configuration.addResource(Configuration.java:485)
at   org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:1465)
at   org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:1433)
at   org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1414)
at   org.hibernate.cfg.Configuration.doConfigure(Configuration.java:1390)
at   org.hibernate.cfg.Configuration.configure(Configuration.java:1310)
at   org.hibernate.cfg.Configuration.configure(Configuration.java:1296)
at   ch03.hibernate.Test.main(Test.java:13)
Caused   by:   org.hibernate.MappingException:   class   hc03.hibernate.User   not   found   while   looking   for   property:   id
at   org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:80)
at   org.hibernate.mapping.SimpleValue.setTypeUsingReflection(SimpleValue.java:276)
at   org.hibernate.cfg.HbmBinder.bindSimpleId(HbmBinder.java:410)
at   org.hibernate.cfg.HbmBinder.bindRootPersistentClassCommonValues(HbmBinder.java:343)
at   org.hibernate.cfg.HbmBinder.bindRootClass(HbmBinder.java:282)
at   org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:153)
at   org.hibernate.cfg.Configuration.add(Configuration.java:386)
at   org.hibernate.cfg.Configuration.addInputStream(Configuration.java:427)
at   org.hibernate.cfg.Configuration.addResource(Configuration.java:482)
...   7   more
Caused   by:   java.lang.ClassNotFoundException:   hc03.hibernate.User
at   java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at   java.security.AccessController.doPrivileged(Native   Method)
at   java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at   java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at   sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)
at   java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at   java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
at   java.lang.Class.forName0(Native   Method)
at   java.lang.Class.forName(Class.java:164)
at   org.hibernate.util.ReflectHelper.classForName(ReflectHelper.java:108)
at   org.hibernate.util.ReflectHelper.reflectedPropertyClass(ReflectHelper.java:76)
...   15   more
异常中提示在映射文件User.hbm.xml中没有发现mapping,以及没有发现匹配id。
我打开文件检查并没有发现类似提示的错误。。。。。。。。。  

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= "hc03.hibernate.User "   table= "myusertable ">
<id   name= "id ">
<generator   class= "   identity   "> </generator>
</id>
<property   name= "username "> </property>
<property   name= "passowrd "> </property>
<property   name= "email "> </property>
</class>
</hibernate-mapping>

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= "myeclipse.connection.profile ">
com.mysql.jdbc.Driver
</property>
<property   name= "connection.url ">
jdbc:mysql://localhost:3306/MyProject
</property>
<property   name= "connection.username "> root </property>
<property   name= "connection.password "> root </property>
<property   name= "connection.driver_class ">
sun.jdbc.odbc.JdbcOdbcDriver
</property>
<property   name= "dialect ">
org.hibernate.dialect.MySQLDialect
</property>
<property   name= "current_session_context_class "> thread </property>
<property   name= "connection.pool_size "> 1 </property>
<property   name= "cache.provider_class ">
org.hibernate.cache.NoCacheProvider
</property>
<property   name= "show_sql "> true </property>
<property   name= "hbm2ddl.auto "> create </property>
<mapping   resource= "ch03/hibernate/User.hbm.xml "   />
</session-factory>
</hibernate-configuration>
小弟刚刚开始接触Hibernate,请高手来帮捉捉虫子。

[解决办法]
应该是你的映射文件有问题吧.User.hbm.xml
[解决办法]
Could not read mappings from resource:
我遇到过类似的情况。。是 <mapping resource= "ch03/hibernate/User.hbm.xml " /> 的xml文件的路径问题。。。你可以试着改变路径”ch03/hibernate/User.hbm.xml“
改为hibernate/User.hbm.xml 或User.hbm.xml试试。或是别的。。。
不过可能你现在已经解决了。。。呵呵

热点排行