mybatis
Oracle Clob 긴문자열 MERGE 할때 java.sql.SQLRecoverableException: IO Error: Connection reset 발생할때
스토브
2018. 5. 24. 13:57
짧은 문자열은 말짱하게 잘되는데 긴문자열 입력할때 뜬금없이 java.sql.SQLRecoverableException 이 발생했다.
구글 찾아보니 random 어쩌고 하던데 그거 따라 해도 계속 에러났다.
결론는 MERGE 구문을 안쓰는 것이다 -.-
계속 찾아보면 방법이 나올것 같기도 하지만 경험상 몇번 검색해서 잘 안되면 방법이 없는 경우가 많아서 그냥 포기하기로...
Mybatis 의 choose - when - otherwise 를 요런식으로 써서 최대한 MERGE 랑 비슷하게 변경하기로 했다. 쫌 많이 불편하지만 에러가 나는것을 어떻게 하나.
<insert id="save"> <selectKey keyProperty="seq" resultType="Integer" order="AFTER"> <choose> <when test="seq==null"> SELECT S_SEQ.CURRVAL FROM DUAL </when> <otherwise> SELECT ${seq} FROM DUAL </otherwise> </choose> </selectKey> <choose> <when test="seq==null"> INSERT INTO TB_TBL ( SEQ , COL1 , COL2 ) VALUES ( S_SEQ.NEXTVAL , #{col1} , #{col2} ) </when> <otherwise> UPDATE TB_TBL SET COL1= #{col1} , COL2= #{col2} WHERE SEQ = #{seq} </otherwise> </choose> </insert>