Używam Spring-Boot 1.2.2 z hibernacja.wersja: 4.3.6.Final dla prostej operacji i był przy użyciu @Converter do mapowania pola LocalDateTime java8 do znacznika czasu.Klasy adnotacji @Converter nie są automatycznie wykrywane w projekcie wiosennego rozruchu
W mojej klasie konwertera użyłem autoApply = true, jak poniżej.
@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();
}
}
Jednak nadal muszę korzystać z @Convert w mojej jednostce. Klasa konwertera jest częścią skanowanych pakietów. Czy jest to coś, co muszę zrobić, aby to działało automatycznie bez użycia @Convert we wszystkich wpisach DB?
:: Dodatkowo ::
Oto mój 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;
}
i '@ Converter' jest co? Spring wykrywa tylko fasolę z adnotacjami "@ Component" (lub fasolę z adnotacją z adnotacją, która sama jest opatrzona adnotacją '@ Component' jak' @ Service'.). –
Agreed @ M.Deinum, ale ja również konfiguruję hibernację i zdefiniowałem pakiety do skanowania w poszukiwaniu stanu hibernacji. Zaktualizowałem również pytanie za pomocą mojej klasy Database i Hibernate Config. Zgaduję, brakuje mi czegoś ... nie jestem pewien co to jest? – Varesh
Używasz Spring Boot, dlaczego wszystko konfigurujesz ręcznie. Ale znowu, czym jest "@ Converter", jeśli nie jest '@ Component', to nic nie robi. Również hibernacja prawdopodobnie musi wiedzieć o tym, zamiast wiosną. –