Joda DateTime과 함께 JPA - Hibernate 2.1을 사용하고 있습니다. DateTime 변환을 위해 org.jadira.usertype을 사용하여 최대 절전 모드로 작업합니다. 이것은 H2 메모리 내장 DB를 사용한 개발 및 로컬 테스트를 위해 모두 잘 작동합니다. 그러나 Jenkins 서버에서 이상한 SQLExceptions를 사용하면 테스트가 항상 실패합니다.H2 데이터베이스에서 최대 절전 모드로 Joda DateTime 사용 - SQLError
WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 90003, SQLState: 90003
ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Hexadecimal string with odd number of characters: "2015-01-22 14:15:52.965"; SQL statement:
그리고 :
WARN o.h.e.jdbc.spi.SqlExceptionHelper - SQL Error: 90004, SQLState: 90004
ERROR o.h.e.jdbc.spi.SqlExceptionHelper - Hexadecimal string contains non-hex character: "2015-01-22 14:15:52.98"; SQL statement:
그것이 서버에서 내 노트북에서 작동하지 왜 알아 꽤 어렵다. 유일한 차이점은 서버가 Ubuntu VM에서 실행 중이며 Windows 8.1을 사용하고 있다는 것입니다. 예를 들면 다음과 같은 것을 고려해야합니까? OpenJDK가 문제를 일으킬 수 있습니까? 아니면이 H2 DB에 관한 알려진 문제입니까? 찾을 수 있습니까? 왜 그런 아이디어가 있고 그것을 해결하기 위해 무엇을 할 수 있습니까?
감사합니다. 문제가 발생
필드 :
@DateTimeFormat(iso = DateTimeFormat.ISO.DATE_TIME)//tried to remove this without success
private DateTime lastSeen;
의 persistence.xml을 - JPA 속성.
<property name="jpaProperties">
<props>
<prop key="hibernate.hbm2ddl.auto">create-drop</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.dialect">org.hibernate.dialect.H2Dialect</prop>
<prop key="hibernate.connection.CharSet">utf-8</prop>
<prop key="hibernate.connection.characterEncoding">utf-8</prop>
<prop key="hibernate.connection.useUnicode">true</prop>
<prop key="hibernate.hbm2ddl.import_files">test-import.sql</prop>
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
</props>
</property>
와우 덕분에 많이! 여하튼 그것은 그것을 고쳤다! @Column은 필수는 아니지만 @Type 주석이 문제였습니다. 나는 JPA 속성 ' true '이 타입 주석을 대체 할 것이라고 생각했습니다. (비록 내가 타입 애노테이션으로 그것을 테스트했다고 생각했지만, 나는 지금 일하고있어 행복하다)! 고마워요! –
답변 StackOverflow 질문은 버그 스포팅 기술을 선명하게합니다. –