Caused by: com.ibm.websphere.ce.cm.DuplicateKeyException: [SQL0803] Dubbele sleutelwaarde opgegeven.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:86)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:58)
at java.lang.reflect.Constructor.newInstance(Constructor.java:542)
at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapExceptionHelper(GenericDataStoreHelper.java:627)
at com.ibm.websphere.rsadapter.GenericDataStoreHelper.mapException(GenericDataStoreHelper.java:686)
at com.ibm.ws.rsadapter.AdapterUtil.mapException(AdapterUtil.java:2267)
at com.ibm.ws.rsadapter.jdbc.WSJdbcUtil.mapException(WSJdbcUtil.java:1191)
at com.ibm.ws.rsadapter.jdbc.WSJdbcPreparedStatement.executeUpdate(WSJdbcPreparedStatement.java:815)
at org.hibernate.id.IdentityGenerator$GetGeneratedKeysDelegate.executeAndExtract(IdentityGenerator.java:94)
at org.hibernate.id.insert.AbstractReturningDelegate.performInsert(AbstractReturningDelegate.java:57)
... 236 more
跑程序 突然遇到 上面的问题,之前一直好用。
原因:在新环境 新建的表 ,然后 插入了一些 静态数据(静态数据带入Id(key)),跑程序重新插入一条 数据,导致key 冲突!!!
解决: SELECT MAX(id)FROM TABLENAME;
ALTER TABLE TABLENAME ALTER COLUMN ID RESTART WITH CHAR(MAX(id)+1);