注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

北漂的小羊

Java编程,开发者,程序员,软件开发,编程,代码。新浪微博号:IT国子监

 
 
 

日志

 
 
关于我

在这里是面向程序员的高品质IT技术学习社区,是程序员学习成长的地方。让我们更好地用技术改变世界。请关注新浪微博号: IT国子监(http://weibo.com/itguozijian)

网易考拉推荐

异常:Could not synchronize database state with session Caused by: java.sql.BatchUpdateException 解决方案  

2013-01-09 12:40:40|  分类: JAVA |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
异常信息:
Java代码 
  1. 21:32:07,062 ERROR [JDBCExceptionReporter] Duplicate entry 'XXX' for key 3  
  2. 21:32:07,062 ERROR [AbstractFlushingEventListener] Could not synchronize database state with session  
  3. org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update  
  4.     at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)  
  5.     at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)  
  6.     at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:249)  
  7.     at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:92)  
  8.     at org.hibernate.jdbc.AbstractBatcher.prepareStatement(AbstractBatcher.java:87)  
  9.     at org.hibernate.jdbc.AbstractBatcher.prepareBatchStatement(AbstractBatcher.java:218)  
  10.     at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2159)  
  11.     at org.hibernate.persister.entity.AbstractEntityPersister.insert(AbstractEntityPersister.java:2595)  
  12.     at org.hibernate.action.EntityInsertAction.execute(EntityInsertAction.java:51)  
  13.     at org.hibernate.engine.ActionQueue.execute(ActionQueue.java:248)  
  14.     at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:232)  
  15.     at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:139)  
  16.     at org.hibernate.event.def.AbstractFlushingEventListener.performExecutions(AbstractFlushingEventListener.java:298)  
  17.     at org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:41)  
  18.     at org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:969)  
  19.     at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1562)  
  20.     at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)  
  21.     at org.springframework.orm.hibernate3.HibernateTemplate$35.doInHibernate(HibernateTemplate.java:981)  
  22.     at org.springframework.orm.hibernate3.HibernateTemplate.execute(HibernateTemplate.java:369)  
  23.     at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:971)  
  24.     at org.springframework.orm.hibernate3.HibernateTemplate.findByCriteria(HibernateTemplate.java:964)  

       

解决方案:


起初以为memcached缓存的问题,后来,查找数据库数据才发现,原来,重复值的那个字段,做了唯一索引,将该数据删掉后,重新插入数据,一切正常。

  评论这张
 
阅读(1754)| 评论(5)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2016