사용자 도구

사이트 도구


java:hibernate:4

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

양쪽 이전 판 이전 판
다음 판
이전 판
java:hibernate:4 [2014/09/22 10:12]
kwon37xi [문제점]
java:hibernate:4 [2015/07/06 10:27] (현재)
kwon37xi [Statement 2중 close 문제]
줄 6: 줄 6:
  
 ===== 문제점 ===== ===== 문제점 =====
-현재 4.2.15버전에서 <del>Comoposite Key 사용시에</del> Insert 등의 작업시에 closed statement에 대해 getWarnings를 호출하는 문제가 있어보인다. 예외를 잡아서 debug로그로 남기고 그냥 넘어가기 때문에 실질적인 문제는 안되지만 성능상 안 좋아보인다.+ 
 +==== Statement 2중 close 문제 ==== 
 +** 최신 버전에서는 4.2.x, 4.3.x 모두 해결된 상태이다.** 
 + 
 +현재 4.2.15버전에서 <del>Comoposite Key 사용시에</del> Insert 등의 작업시에 closed statement에 대해 getWarnings를 호출하는 문제가 있어보인다. 예외를 잡아서 debug로그로 남기고 그냥 넘어가기 때문에 실질적인 문제는 안되지만 성능상 안 좋아보인다. 
  
 [[https://hibernate.atlassian.net/browse/HHH-9174|HHH-9174]] 로그 레벨을 체크하여 필요할 경우에만 로그를 찍게 수정되었다. 그러나 근본적인 문제는 Statement가 이미 close 된 상태에서 아래 메소드를 호출한다는 점이다. [[https://hibernate.atlassian.net/browse/HHH-9174|HHH-9174]] 로그 레벨을 체크하여 필요할 경우에만 로그를 찍게 수정되었다. 그러나 근본적인 문제는 Statement가 이미 close 된 상태에서 아래 메소드를 호출한다는 점이다.
  
-''org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch#addToBatch.addToBatch''에서 statement를 두번 release 한다.+''org.hibernate.engine.jdbc.batch.internal.NonBatchingBatch#addToBatch.addToBatch''에서 statement를 두번 release 한다. [[https://hibernate.atlassian.net/browse/HHH-8952|HHH-8952 NonBatchingBatch releases statements twice]] -> [[https://hibernate.atlassian.net/browse/HHH-8853|Hibernate 4.3.2에서 수정됨]] 그러나 4.2.x 에서는 그대로 남아있는 상태.
  
 org.hibernate.engine.jdbc.spi.SqlExceptionHelper#handleAndClearWarnings(java.sql.Statement, org.hibernate.engine.jdbc.spi.SqlExceptionHelper.WarningHandler) org.hibernate.engine.jdbc.spi.SqlExceptionHelper#handleAndClearWarnings(java.sql.Statement, org.hibernate.engine.jdbc.spi.SqlExceptionHelper.WarningHandler)
줄 26: 줄 30:
 </code> </code>
  
 +4.2버전에서 단기 해결책은 로그 레벨을 ERROR로 변경하는 것이다.
 +<code groovy>
 +// logback의 경우
 +logger('org.hibernate.engine.jdbc.spi.SqlExceptionHelper', ERROR)
 +</code>
java/hibernate/4.1411348369.txt.gz · 마지막으로 수정됨: 2014/09/22 10:12 저자 kwon37xi