Sto usando spring-boot 1.2.2 con hibernate.version: 4.3.6.Finale per una semplice operazione e stavo usando il @Converter per mappare il campo java8 LocalDateTime per timestamp.@Converter classe annotata che non viene rilevata automaticamente nel progetto Spring-boot
Nella mia classe di convertitore, ho usato autoApply = true come di seguito.
@Converter(autoApply = true)
public class LocalDateTimePersistenceConverter implements
AttributeConverter {
@Override
public java.sql.Timestamp convertToDatabaseColumn(LocalDateTime entityValue) {
return Timestamp.valueOf(entityValue);
}
@Override
public LocalDateTime convertToEntityAttribute(java.sql.Timestamp databaseValue) {
return databaseValue.toLocalDateTime();
}
}
Tuttavia, devo ancora utilizzare @Convert sulla mia entità. La classe del convertitore è parte dei pacchetti che scrivo. È qualcosa che devo fare per farlo funzionare automaticamente senza usare @Convert su tutte le voci del DB?
:: :: Inoltre
Ecco il mio DB Config
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
LocalContainerEntityManagerFactoryBean lef = new LocalContainerEntityManagerFactoryBean();
lef.setDataSource(dataSource());
lef.setJpaVendorAdapter(jpaVendorAdapter());
lef.setPackagesToScan("path to domain and Converter class");
lef.afterPropertiesSet();
return lef;
}
@Bean
public JpaTransactionManager transactionManager() {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(entityManagerFactory().getObject());
return transactionManager;
}
@Bean
public JpaVendorAdapter jpaVendorAdapter() {
HibernateJpaVendorAdapter adapter = new HibernateJpaVendorAdapter();
adapter.setDatabase(Database.ORACLE);
adapter.setShowSql(false);
adapter.setGenerateDdl(false);
return adapter;
}
E '@ Converter' è ciò? Spring rileva solo i bean annotati '@ Component' (o i bean annotati con un'annotazione che è annotata con' @ Component' come '@ Service'.). –
Concordato @ M.Deinum ma sto configurando anche Hibernate e ho definito i pacchetti per Hibernate per la scansione. Ho anche aggiornato la domanda con la mia classe Database e Hibernate Config. Sto indovinando, mi manca qualcosa ... Non sono sicuro di cosa si tratta? – Varesh
Si sta utilizzando Spring Boot perché si configura tutto manualmente. Ma ancora una volta cosa è '@ Converter' se non è un' @ Component' non fa nulla. Anche il letargo probabilmente deve saperlo al posto della primavera. –