hibernate 主键策略问题 数据是 sqlserver2005

zengjz88 2011-03-10 09:46:14
我对表的查询 修改 删除都没问题, 但是在增加的时候包不支持数据库主键策略

我的数据库UserT这表的uid是自动增长的主键。


org.springframework.orm.hibernate3.HibernateSystemException: Dialect does not support identity key generation; nested exception is org.hibernate.MappingException: Dialect does not support identity key generation
org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:676)
org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:424)
org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374)
org.springframework.orm.hibernate3.HibernateTemplate.save(HibernateTemplate.java:694)
com.entity.daoImp.UserDaoImp.inser(UserDaoImp.java:45)
com.entity.bizImp.UserBizImp.inser(UserBizImp.java:44)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
$Proxy0.inser(Unknown Source)

-------------------------------------------------------
UserT.hbm.xml


<class name="com.entity.vo.UserT" table="userT" schema="dbo" catalog="testSSH">
<id name="uid" type="java.lang.Integer">
<column name="uId" />
<generator class="identity"></generator>
</id>

--------------------------------------------------------
create table userT(
uId int identity primary key,
uUame varchar(20),
uAge int,
uSex int
)
go
--------------------------------------------------------
还打印了hibernate的HQL语句:
Hibernate: insert into testSSH.dbo.userT (uUame, uAge, uSex) values (?, ?, ?)

数据的uid增长了一位,但是数据好像是回滚了。











等高手。


...全文
122 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
天空win 2011-03-10
  • 打赏
  • 举报
回复
在hibernat的配置文件中加上方言
stream1990 2011-03-10
  • 打赏
  • 举报
回复
hibernate的主配置文件中的方言没改吧

查找dialect 看看是不是mssql的
zn85600301 2011-03-10
  • 打赏
  • 举报
回复
Dialect does not support identity key generation
你的hibernate方言 不支持主键生成策略
youjianbo_han_87 2011-03-10
  • 打赏
  • 举报
回复
报错已经很明白了。估计是你这个版本的 Hibernate 支持SQLServer 2005的这种主键策略不良好。

81,122

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧