7:18:10,312 DEBUG Printer:90 - com.hibernate.User{password=123, creatTime=2009-08-10 17:18:10, name=张三, id=402881e4230399bc01230399bd690001, expireTime=2009-08-10 17:18:10}
17:18:10,312 DEBUG AbstractFlushingEventListener:290 - executing flush
17:18:10,312 DEBUG ConnectionManager:463 - registering flush begin
17:18:10,312 DEBUG AbstractEntityPersister:2139 - Inserting entity: [com.hibernate.User#402881e4230399bc01230399bd690001]
17:18:10,312 DEBUG AbstractBatcher:358 - about to open PreparedStatement (open PreparedStatements: 0, globally: 0)
17:18:10,343 DEBUG SQL:393 - 
    insert 
    into
        User
        (name, password, creatTime, expireTime, id) 
    values
        (?, ?, ?, ?, ?)
Hibernate: 
    insert 
    into
        User
        (name, password, creatTime, expireTime, id) 
    values
        (?, ?, ?, ?, ?)
17:18:10,343 DEBUG AbstractBatcher:476 - preparing statement
17:18:10,359 DEBUG AbstractEntityPersister:1927 - Dehydrating entity: [com.hibernate.User#402881e4230399bc01230399bd690001]
17:18:10,375 DEBUG AbstractBatcher:366 - about to close PreparedStatement (open PreparedStatements: 1, globally: 1)
17:18:10,375 DEBUG AbstractBatcher:525 - closing statement
17:18:10,390 DEBUG JDBCExceptionReporter:63 - could not insert: [com.hibernate.User] [insert into User (name, password, creatTime, expireTime, id) values (?, ?, ?, ?, ?)]
com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2182)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.hibernate.Client.main(Client.java:33)
17:18:10,390  WARN JDBCExceptionReporter:71 - SQL Error: 156, SQLState: S0001
17:18:10,390 ERROR JDBCExceptionReporter:72 - 关键字 'User' 附近有语法错误。
17:18:10,390 ERROR AbstractFlushingEventListener:301 - Could not synchronize database state with session
org.hibernate.exception.SQLGrammarException: could not insert: [com.hibernate.User]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2202)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.hibernate.Client.main(Client.java:33)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2182)
... 11 more
17:18:10,390 DEBUG ConnectionManager:472 - registering flush end
org.hibernate.exception.SQLGrammarException: could not insert: [com.hibernate.User]
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2202)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)
at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)
at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)
at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)
at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:27)
at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1000)
at org.hibernate.impl.SessionImpl.managedFlush(SessionImpl.java:338)
at org.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:106)
at com.hibernate.Client.main(Client.java:33)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: 关键字 'User' 附近有语法错误。
at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(Unknown Source)
at com.microsoft.sqlserver.jdbc.TDSCommand.execute(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(Unknown Source)
at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(Unknown Source)
at org.hibernate.jdbc.NonBatchingBatcher.addToBatch(NonBatchingBatcher.java:23)
at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2182)
... 11 more
17:18:10,390 DEBUG JDBCTransaction:152 - rollback
17:18:10,390 DEBUG JDBCTransaction:163 - rolled back JDBC Connection
17:18:10,390 DEBUG JDBCContext:215 - after transaction completion
17:18:10,390 DEBUG ConnectionManager:398 - aggressively releasing JDBC connection
17:18:10,390 DEBUG ConnectionManager:435 - releasing JDBC connection [ (open PreparedStatements: 0, globally: 0) (open ResultSets: 0, globally: 0)]
17:18:10,390 DEBUG DriverManagerConnectionProvider:129 - returning connection to pool, pool size: 1
17:18:10,390 DEBUG SessionImpl:422 - after transaction completion
17:18:10,390 DEBUG SessionImpl:273 - closing session
17:18:10,390 DEBUG ConnectionManager:369 - connection already null in cleanup : no action

解决方案 »

  1.   

    晕哦,都提示出来了,就是插入语句的格式有错误哦,那个错误日志还精确到了User附近有语法错误,只要好好找就肯定能找出来哦,呵呵……加油
      

  2.   

    SQL2005中 User 是一个关键字。
    手工写SQL要使用 [USER],所以楼主的表最好不要用这个做表名。
      

  3.   

    解决方法: http://user.qzone.qq.com/19088158/blog/1300950319
      

  4.   

    -------------关键字 'User' 附近有语法错误-----------
    两点:
    1.sqlserver中不分大小写
    2.sqlserver中user是关键字
      over----------
      

  5.   

    -------------关键字 'User' 附近有语法错误-----------
    两点:
    1.sqlserver中不分大小写
    2.sqlserver中user是关键字
      over----------所以你得要把表名换一下
      

  6.   

    把user表名改一下还有hibernate的映射文件中的table
      

  7.   

    User 是关键字
    你把你hbm文件中的table 改了
     <class name="com.hibernate.User" table="`USER`"