티스토리 뷰

스프링 + 아이바티스 일 경우 아래와 같은 에러를 보여준다

org.springframework.web.util.NestedServletException: Request processing failed; nested exception is org.springframework.dao.DataIntegrityViolationException: SqlMapClient operation; SQL [];  
--- The error occurred in xxx.xml. 
--- The error occurred while applying a parameter map. 
--- Check the xxx.XXX-InlineParameterMap. 
--- Check the statement (update failed). 
--- Cause: java.sql.SQLException: ORA-00001: ORA-00001: 무결성 제약 조건(DB.PK)에 위배됩니다
; nested exception is com.ibatis.common.jdbc.exception.NestedSQLException:  

그리고 일반 서블릿에 경우에는 아래와 같이

java.sql.SQLException: ORA-00001: 무결성 제약 조건(DB.PK)에 위배됩니다
 at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:331)
 at oracle.jdbc.driver.T4CTTIoer.processError(T4CTTIoer.java:288)
 at oracle.jdbc.driver.T4C8Oall.receive(T4C8Oall.java:745)
 at oracle.jdbc.driver.T4CStatement.doOall8(T4CStatement.java:210)
 at oracle.jdbc.driver.T4CStatement.executeForRows(T4CStatement.java:961)
 at oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(OracleStatement.java:1190)
 at oracle.jdbc.driver.OracleStatement.executeUpdateInternal(OracleStatement.java:1657)
 at oracle.jdbc.driver.OracleStatement.executeUpdate(OracleStatement.java:1626)
 at com.javaservice.jennifer.trace.sql.Statement.executeUpdate(Unknown Source)
 at jeus_jspwork._jsp._common._500_get_5xxx_5xxx_5fjsp.setXxx(_500_get_5xxx_5xxx_5fjsp.java:101)
 at jeus_jspwork._jsp._common._500_get_5xxx_5xxx_5fjsp._jspService(_500_get_5xxx_5xxx_5fjsp.java:199)
 at jeus.servlet.jsp.HttpJspBase.service(HttpJspBase.java:54)
 at javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
 at jeus.servlet.jsp.JspServletWrapper.executeServlet(JspServletWrapper.java:147)
 at jeus.servlet.engine.ServletWrapper.execute(ServletWrapper.java:214)
 at jeus.servlet.jsp.JspServletWrapper.execute(JspServletWrapper.java:193)
 at jeus.servlet.engine.WebtobRequestProcessor.run(WebtobRequestProcessor.java:183)

대부분 INSERT 하는 부분에 PK 값에 중복된 값을 넣으려고 할 때 발생하는 에러 이다.
pk값을 max 값으로 넣을 때 종종 발생 할 경우가 있다.

댓글
댓글쓰기 폼