Sto imparando come accedere ai database con Spring Boot JPA.Come memorizzare Joda Time (any) in Spring JPA con un tipo di colonna compatibile con SQL?
ho scritto un'applicazione con qualche entità, contenente Instant campo:
ero in grado di compilare/run con @Temporal
o @Type
annotazioni, in modo che siano commentate.
Inoltre, ero in grado di funzionare con l'impostazione di spring.jpa.properties.jadira.usertype.autoRegisterUserTypes
in application.properties
Si stava causando un errore
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaAutoConfiguration.class]: Invocation of init method failed; nested exception is java.lang.NoSuchMethodError: org.hibernate.cfg.Configuration.registerTypeOverride(Lorg/hibernate/usertype/UserType;[Ljava/lang/String;)Lorg/hibernate/cfg/Configuration;
Quindi, è commentato anche questa linea.
spring.datasource.url=jdbc:h2:tcp://localhost/~/pdk
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
# Jadira requirement
#spring.jpa.properties.jadira.usertype.autoRegisterUserTypes=true
Purtroppo, allo stato finale ho ottenuto alcuni/dati binari serializzati nel contenuto campo
E 'possibile avere un tipo qui un po' di colonna SQL-compatibili?
UPDATE
ho trovato, che la seguente annotazione stava lavorando bene:
@Type(type = "org.jadira.usertype.dateandtime.joda.PersistentInstantAsTimestamp")
Ma perché l'impostazione in application.properties
non funziona?
Cosa vuoi dire che non sei riuscito a compilare/eseguire con l'annotazione del tipo Jadira? Che tipo di errori hai ottenuto? Quale fornitore JPA stai usando? BTW - il 'PersistentDateTime' funziona per Joda' DateTime', non 'Instant', che è il tipo del tuo campo, quindi forse questo è il problema. –
Stai usando versioni Spring Boot e Hibernate compatibili? Sembra incompatibilità binaria delle librerie. Quali versioni stai usando? –