Hibernate: select max(ID) from gewsd
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not fetch initial value for increment generator
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:67)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:107)
at org.hibernate.id.IncrementGenerator.generate(IncrementGenerator.java:44)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:91)
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 aaa.Mx_msDaoImpl.insertM(Mx_msDaoImpl.java:25)
at aaa.App.main(App.java:12)
Caused by: com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'dsj.gewsd' doesn't exist
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2934)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1616)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1708)
at com.mysql.jdbc.Connection.execSQL(Connection.java:3255)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1293)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1428)
at org.hibernate.id.IncrementGenerator.getNext(IncrementGenerator.java:85)
... 12 more

解决方案 »

  1.   

    有没有生成建表语句? 打印出建表语句来看看,还有Hibernate的配置文件总要拿来看一下吧...为什么表名会有'dsj.gewsd' 一个"."呢.......建的表表名不能有"."的吧
      

  2.   

    我今天也遇到这个问题了
    后来发现是MySQL对表名是区分大小写的可以在/etc/mysql/my.cnf文件的[mysqld](30行左右)后面添加
    lower_case_table_names=1
    然后重新启动mysql就可以了
      

  3.   

    thanks,我用的是webmin管理的,数据库授权的地方,我受的是所有,crud,但是就是不好始,这是什么原因呢?