1

hibernate.dialect.SQLServerDialect와 함께 hibernate.dialect.SQLServerDialect를 사용하여 hibernate3-maven-plugin을 사용하도록 이전에 프로젝트를 설정했습니다. 잘 작동했다.hibernate.dialect.SQLServer2008Dialect와 hibernate3-maven-plugin을 사용할 때 호환되지 않는 API 오류가 발생했습니다.

하지만 org.hibernate.dialect.SQLServer2005Dialect에 방언을 변경하는 경우, Hibernate3는-받는다는 - 플러그인은 다음과 같은 오류가 발생 :

An API incompatibility was encountered while executing org.codehaus.mojo:hibernate3-maven-plugin:2.2:hbm2ddl: java.land.NoSuchMethodError: org.hibernate.dialect.SQLServer2005Dialect.registerColumnType(IJLjava/lang/String;)V

이 SQLServer2005Dialect 또는 SQLServer2008Dialect (나는 또한과 같은 오류가 지원 hbm2ddl을 하는가를 2008)?

저는 플러그인 2.2 버전과 hibernate.4.1.0.Final 및 JPA 2.0을 사용하고 있습니다.

답변

1

gradle과 glassfish에서 같은 오류가 발생하는 데 며칠이 걸렸습니다. 나는 소스에서 내 자신의 SqlServer2005Dialect를 추가하고 registerColumnType() 행을 주석 처리했습니다. 여기에서 오류가 "java.lang.NoSuchFieldError : INSTANCE"로 변경되었습니다.

이것은 훨씬 더 google-able 오류입니다. 이는 기본적으로 최대 2 이상의 최대 절전 모드 병이 있음을 의미합니다.

내 경우에는 최대 절전 모드가 gradle 빌드에 들어가기 전에 glassfish를 통해 최대 절전 모드를 설치했습니다. 글래스 피시에서 최대 절전 모드를 제거하면 내 오류가 해결되어 2008 년 또는 2005 년 방언을 실행할 수 있습니다.

+1

이것은 유망한 리드처럼 들립니다. 나는 앞으로 조사해야 할 것이다. 그동안 웹 응용 프로그램에서 새로운 SQLServer2008Dialect를 사용하고 플러그 인에서는 이전 SQLServerDialect를 사용했습니다. – citress