具体错误代码我无法贴出,在银行it部门电脑上无法拷贝。也没有抄录下来。不过这种错误是第一次出现,出现时间也不是很长。就是客户端在添加业务向数据库插入数据的时候偶尔会报异常。具体异常就是说主键出现重复!无法插入数据。客户端在tomcat上 ,部署在本机。oracle在远程服务器。。出现错误之后,再试了几次,又正常了。时间在今天早上9点40--10点。数据库没有定时备份,在这个时间段
哪位大神有遇到过这种情况。。有人说是网络问题。。网络堵塞。。具体什么情况?个人认为代码是没有问题的如果以后再次在用户使用的时候出现问题,这个效果就不好了

解决方案 »

  1.   

    检查一下sequences吧,看一下当前值哦
      

  2.   


    主键就是序列管理的 hibernate_sequence.nextval 插入数据的时候是hibernate自己去管理主键的
    插入之后会自己提交 出错会回滚的
      

  3.   


    我发现序列不像sqlserver中的自增长列 并不是从最后的一个id开始自增的
    我好想发现原因了一张表中 我在导入初始数据的时候还有中途用脚本插入数据的时候,主键id也就是想让其自增长的列并不是连续的,例如插入1---100,中途自己手动写sql脚本又插入了主键,自己设定的值 从800开始这时候发现select hibernate_sequence.nextval from dual  =700当插入一部分数据后 select hibernate_sequence.nextval from dual会到达800这个值 然后就重复了
      

  4.   


    就是select hibernate_sequence.nextval from dual 的问题怎么去保证这个序列永远不会跟某个表中的主键重复啊????
      

  5.   

    这样如何,用捕获DUP异常来处理,若PK重复,则尝试自动编一定次数的序列,例如十次,如果十次都编到重复的,则报错提示。
      

  6.   

    DUP这个处理是不是有点麻烦了啊还没用过这个异常捕获
      

  7.   


    暂时是这样解决的select hibernate_sequence.nextval from dual 执行这条语句N次发现出现重复的原因就是自己手动导入的有垃圾数据谢谢各位 结贴了