Hibernate와 JPA EntityManager를 사용시, Transaction null point exception이 발생하는 경우
Java 2013. 11. 15. 09:47개인 project를 진행하다가 이상한 에러가 계속해서 발생되었다.
Transaction update가 발생될때와 Test Rollback 이 발생될 때마다 PlatformTransaction null point exception이 발생되었다.
특이하게 이 exception은 다음과 같은 상황에서만 발생된다.
1. JUnit을 이용한 test인 경우
2. update, delete query인 경우
발생되는 곳에 @Transactional을 붙이건 뭘하건 계속해서 발생이 되는데.... 이 에러의 원인은 엉뚱하게도 다른곳에 있었다.
hibernate-core와 hibernate-entitymanager 간의 버젼이 다를 경우에 발생하는 에러라는것. -_-;;
gradle로 build script를 짜두고 hibernate version만으로 따로 project property로 관리하고 있었는데, 최신의 hibernate와 예전의 hibernate-entitymanager간의 버젼이 다르기 때문에 발생되는 에러였다.
그래서 gradle script를 다음과 같이 변경한 후에는 잘 돌아간다.; hibernate에 관련된 library들은 같은 version으로 관리될 수 있도록 해야지 되겠다.;
ext {
springVersion = '4.0.0.BUILD-SNAPSHOT'
springDataVersion = '1.4.2.RELEASE'
javaVersion = 1.7
slf4jVersion = '1.7.2'
querydslVersion = '3.2.4'
hibernateVersion = "4.2.7.Final"
}
compile "org.hibernate:hibernate-core:${rootProject.ext.hibernateVersion}"
compile "org.hibernate:hibernate-entitymanager:${rootProject.ext.hibernateVersion}"
compile "org.hibernate:${rootProject.ext.hibernateVersion}"