ERROR 2015-12-02 11:57:55,110 http-bio-8080-exec-20 - ORA-00001: 违反唯一约束条件 (SCOTT.SYS_C0011574)
ERROR 2015-12-02 11:57:55,110 http-bio-8080-exec-20 - ORA-00001: 违反唯一约束条件 (SCOTT.SYS_C0011574)
ERROR 2015-12-02 11:57:55,110 http-bio-8080-exec-20 - Could not synchronize database state with session
org.hibernate.exception.ConstraintViolationException: Could not execute JDBC batch update
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:71)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
at org.hibernate.jdbc.AbstractBatcher.executeBatch(AbstractBatcher.java:253)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:237)
at org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:141)
try catch语句是这样的
try {
bankBManager.addBankBEntity(bankB);
request.setAttribute("jsons",
"{\"success\":true,\"msg\":\"保存成功\"}");
} catch (Exception e) {
request.setAttribute("jsons",
"{\"success\":true,\"msg\":\"数据重复,请重新输入\"}");
}
最好还是处理插入数据之前先进行数据唯一验证。验证通过才允许插入。
你这样写结果可能有时没影响。但处理方式不好。就相当于 你提交代码。 你这种写法相当于 提交错误的代码,别人用发现错了才通知你改正。而提前处理判断相当于你自己先 把代码改正测试完全了,才给别人用。你想想哪种好