java.lang.NoClassDefFoundError: com/hibernate/Person (wrong name: com/Hibernate/Person)java大小写是敏感的

解决方案 »

  1.   

    <class name="com.hibernate.Person" table="Person">
    应该是
    <class name="com.Hibernate.Person" table="Person">
      

  2.   

    谢谢你的回答
    但是问题又有 我的id varchar(8) name varchar(16) email varchar(32)数据库里面定义的长度
    好像没有超过长度把 帮忙再看看log4j:WARN No appenders could be found for logger (net.sf.hibernate.cfg.Environment).
    log4j:WARN Please initialize the log4j system properly.
    COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0109E  字符串数据右截断。 SQLSTATE=22001
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source)
    at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute2(Unknown Source)
    at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeUpdate(Unknown Source)
    at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
    at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:478)
    at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:454)
    at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:20)
    at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2100)
    at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2061)
    at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2005)
    at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:57)
    at com.Hibernate.Example.main(Example.java:52)
    rethrown as net.sf.hibernate.JDBCException: Could not synchronize database state with session: [IBM][CLI Driver] CLI0109E  字符串数据右截断。 SQLSTATE=22001
    at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2069)
    at net.sf.hibernate.impl.SessionImpl.flush(SessionImpl.java:2005)
    at net.sf.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:57)
    at com.Hibernate.Example.main(Example.java:52)
    Caused by: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] CLI0109E  字符串数据右截断。 SQLSTATE=22001
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.throw_SQLException(Unknown Source)
    at COM.ibm.db2.jdbc.app.SQLExceptionGenerator.check_return_code(Unknown Source)
    at COM.ibm.db2.jdbc.app.DB2PreparedStatement.execute2(Unknown Source)
    at COM.ibm.db2.jdbc.app.DB2PreparedStatement.executeUpdate(Unknown Source)
    at net.sf.hibernate.impl.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:22)
    at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:478)
    at net.sf.hibernate.persister.EntityPersister.insert(EntityPersister.java:454)
    at net.sf.hibernate.impl.ScheduledInsertion.execute(ScheduledInsertion.java:20)
    at net.sf.hibernate.impl.SessionImpl.executeAll(SessionImpl.java:2100)
    at net.sf.hibernate.impl.SessionImpl.execute(SessionImpl.java:2061)
    ... 3 more
    Exception in thread "main"
      

  3.   

    <generator class="uuid.hex"/>
    你的generator uuid.hex生成的字符串有32位,而你只有8位,当然不行啊
      

  4.   

    问题在问:
    上述代码在mysql上运行成功,但是为什么生成的id 是个40288176 通过更改setId()但是插入数据库的值仍然是这个40288176 ,我查看了些东西,说是
    <id  name="id"  type="string"  unsaved-value="null"  >  
    <column  name="ID"  sql-type="varchar(8)"  not-null="true"/>  
    <generator  class="uuid.hex"/>
    是根据IP地址生成的一个数值,不得其解,请大家帮忙