日期:2014-05-20  浏览次数:20922 次

hibernate抛出could not fetch initial value for increment generator, 如何解决
我的struts+hibernate+servlet在save 实体类时抛出例外,查询则可以正常查询出来。

ERROR [http-8080-Processor24] (JDBCExceptionReporter.java:72) - [Microsoft][SQLServer 2000 Driver for JDBC][SQLServer]对象名 'users' 无效。
ERROR [http-8080-Processor24] (UsersDAO.java:30) - save user failed
org.hibernate.exception.SQLGrammarException: could not fetch initial value for increment generator

配置文件:
<class name="com.zb.model.Users" table="users" schema="dbo" catalog="defokus">
<id name="userid" type="java.lang.Integer">
<column name="userid" />
<generator class="increment"></generator>
</id>
<property name="username" type="java.lang.String">
<column name="username" length="50" not-null="true" />
</property>
<property name="pwd" type="java.lang.String">
<column name="pwd" length="50" not-null="true" />
</property> 

谢谢

------解决方案--------------------
主要还是对象名 'users' 无效。问题.
是user吧?
------解决方案--------------------
这个是sqlserver的问题。。。你要么换字段名,要么换数据库吧。。。
------解决方案--------------------
user 是保留字,建议你改名为 t_user
 
------解决方案--------------------
userid在数据库中有没有设置成自动增长呢
------解决方案--------------------
在SQLServer企业管理器,选中表格,编辑
在底部有一个[标识],选中是
------解决方案--------------------
跟增量有关系
跟你字段的类型和命名匹配没匹配也有关系