码迷,mamicode.com
首页 > 其他好文 > 详细

Dialect does not support identity key generation

时间:2014-09-09 10:29:18      阅读:354      评论:0      收藏:0      [点我收藏+]

标签:io   使用   ar   数据   art   sp   on   c   数据库   

oracle数据库不支持主键自增

如果用的是mysql出现这种错误 就去检查application里spring中配置数据源的地方

sessionFactory里的<property name="hibernateProperties"> 
里的

  1. <props>  
  2.                 <prop key="hibernate.dialect">  
  3.             org.hibernate.dialect.OracleDialect  //要换成mysql的dialect
  4.             </prop> 

 

 

oracle不支持identity,支持的是sequence , 
@GeneratedValue(strategy = IDENTITY) 
修改成sequence

 

你这使用sqlservser,然后dialect使用oracle怎么可能对,
如果想使用oracle而且没有制定sequece的名字,则hibernate使用默认的名字HIBERNATE_SEQUENCE
你必须创建名为HIBERNATE_SEQUENCE 的sequence 

 

呵呵,楼上几位说得对,你用oracle的方言去连接sql server,当然乱套了。

另外,即使方言配对了,如果不是项目有特别需要,id生成器没必要按数据库产品来配,直接用native,通用所有方言。这样有助于将来做数据库迁移,万一真有需要指定id的特殊生成器,到时候再改也不迟。

PS:如果数据量特别大,而且增删都特别频繁,数据库自动生成KEY是不太合适的,这时候建议自定义generator类,调用某存储过程按照特定逻辑来取得下一个id。

Dialect does not support identity key generation

标签:io   使用   ar   数据   art   sp   on   c   数据库   

原文地址:http://www.cnblogs.com/plzdaye/p/3961216.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!