Ich verwende UserType 3.2.0-GA, Hibernate 4.3.8, im Gespräch mit einer vorhandenen mysql-Instanz auf AWS (RDS).Hibernate kann ein org.joda.time.LocalDate nicht lesen oder schreiben
Ich versuche, die App von Hibernate 3.2.6 und Joda-Time-Hibernate 1.1 zu aktualisieren.
Das Versagen Eigenschaft:
<property name="birthdate" not-null="true" type="org.joda.time.LocalDate"/>
Das Modell:
import org.joda.time.LocalDate;
...
public LocalDate getBirthdate() {
return this.birthdate;
}
Der Fehler bei dem Versuch, bestehende Daten zu lesen:
org.hibernate.type.SerializationException: could not deserialize (Caused by: java.io.StreamCorruptedException: invalid stream header: 31393936)
org.hibernate.internal.util.SerializationHelper.doDeserialize(SerializationHelper.java:262)
org.hibernate.internal.util.SerializationHelper.deserialize(SerializationHelper.java:306)
org.hibernate.type.descriptor.java.SerializableTypeDescriptor.fromBytes(SerializableTypeDescriptor.java:155)
org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:130)
org.hibernate.type.descriptor.java.SerializableTypeDescriptor.wrap(SerializableTypeDescriptor.java:44)
org.hibernate.type.descriptor.sql.VarbinaryTypeDescriptor$2.doExtract(VarbinaryTypeDescriptor.java:71)
org.hibernate.type.descriptor.sql.BasicExtractor.extract(BasicExtractor.java:64)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:267)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:263)
org.hibernate.type.AbstractStandardBasicType.nullSafeGet(AbstractStandardBasicType.java:253)
org.hibernate.type.AbstractStandardBasicType.hydrate(AbstractStandardBasicType.java:338)
...
java.io.ObjectInputStream.readStreamHeader(ObjectInputStream.java:804)
Der Fehler bei dem Versuch, neue zu schreiben Daten:
WARN: SQL Error: 1292, SQLState: 22001
Apr 12, 2016 5:12:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions
ERROR: Data truncation: Incorrect date value: '��' for column 'birthdate' at row 1
Apr 12, 2016 5:12:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper$StandardWarningHandler logWarning
WARN: SQL Warning Code: 1292, SQLState: HY000
Apr 12, 2016 5:12:07 PM org.hibernate.engine.jdbc.spi.SqlExceptionHelper$StandardWarningHandler logWarning
WARN: Incorrect date value: '��' for column 'birthdate' at row 1
org.springframework.dao.DataIntegrityViolationException: could not execute statement; SQL [n/a]; nested exception is org.hibernate.exception.DataException: could not execute statement
Wie Sie sehen können, bin ich mit Frühling Dinge zu konfigurieren. Meine Hibernate Eigenschaften im Frühjahr sind:
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.generate_statistics">true</prop>
<prop key="hibernate.cache.region.factory_class">org.hibernate.cache.EhCacheRegionFactory</prop>
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hibernate.cache.use_query_cache">true</prop>
<prop key="jadira.usertype.autoRegisterUserTypes">true</prop>
</props>
</property>
</bean>
Ich habe auch versucht, die Eigenschaft als typeless zu konfigurieren, um ussertype seine Sache zu tun: ' ' Aber das schien keinen Unterschied zu machen. –
Joda + Hibernate funktionieren nicht aus der Box. Überprüfen Sie [diese] (http://www.joda.org/joda-time-hibernate/userguide.html) und [diese] (http://stackoverflow.com/questions/8974747/hibernate-4-and-joda- Zeit). – dambros
Ja, das ist der Grund, warum ich bereits erwähnt habe, dass wir joda-time-hibernate 1.1 bereits für die Integration verwendet haben, aber auf usernype 3.2.0 aktualisiert haben, wie bei Ihrem zweiten Link. –