JBOSS 点滴

丰丰的博客

Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not fetch initial value for increment generator

错误提示:
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 hibernatedao.Myuser2DAO.save(Myuser2DAO.java:28)
 at HibernateDaoTest.main(HibernateDaoTest.java:24)
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)
hbm.xml代码:
<hibernate-mapping>
    <class name="hibernatedao.Myuser2" table="t_myuser2" schema="dbo" catalog="myssh">
        <id name="id" type="java.lang.Integer">
            <column name="id" />
            <generator class="increment" />
        </id>
        <property name="username" type="java.lang.String">
            <column name="username" length="50" not-null="true" />
        </property>
        <property name="password" type="java.lang.String">
            <column name="password" length="50" not-null="true" />
        </property>
    </class>
</hibernate-mapping>

错误原因一:
要将 <generator class="increment"> </generator>中的"increment"换成"native".
将主键的生成交给数据库来维护。
 原因二:对象名不能为“user"
原因三:在SQLServer企业管理器,选中表格,编辑
在底部有一个[标识],选中是

posted on 2009-09-01 12:12 半导体 阅读(4249) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: