Używam WZP Wiosna rozruchu danych i teraz, mam to:Jak mogę załadować właściwości jpa do źródła danych w Spring?
@Configuration
@PropertySource("classpath:persistence.properties")
@EnableTransactionManagement
public class PersistenceConfiguration {
@Autowired
private Environment env;
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactory(EntityManagerFactoryBuilder builder) {
LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean();
entityManager.setDataSource(this.dataSource());
entityManager.setPackagesToScan(new String[] {"com.example.movies.domain"});
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter();
entityManager.setJpaVendorAdapter(vendorAdapter);
entityManager.setJpaProperties(this.properties());
return entityManager;
}
@Bean
@ConfigurationProperties(prefix = "spring.datasource")
public DataSource dataSource() {
return DataSourceBuilder.create().build();
}
@Bean
public PlatformTransactionManager transactionManager(EntityManagerFactory emf) {
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(emf);
return transactionManager;
}
@Bean
public PersistenceExceptionTranslationPostProcessor exceptionTranslation() {
return new PersistenceExceptionTranslationPostProcessor();
}
private Properties properties() {
Properties properties = new Properties();
properties.setProperty("hibernate.ddl-auto", this.env.getProperty("spring.jpa.hibernate.ddl-auto"));
properties.setProperty("hibernate.dialect", this.env.getProperty("spring.jpa.hibernate.dialect"));
properties.setProperty("hibernate.show_sql", this.env.getProperty("spring.jpa.show-sql"));
return properties;
}
}
i mój persistence.properties
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/sarasa_db
spring.datasource.username=root
spring.datasource.password=myPassword
spring.jpa.hibernate.ddl-auto=update
spring.jpa.hibernate.dialect=org.hibernate.dialect.MySQL5Dialect
spring.jpa.show-sql=false
Co chciałbym wiedzieć, czy istnieje jakikolwiek sposób, aby załadować te JpaProperties automatycznie. Chcę, aby ta wiosna została skompilowana, ponieważ teraz, jeśli dodaję nową właściwość jpa do właściwości persistence.properties, to nie zauważę, że zmieni się, dopóki nie ustawię tej właściwości w obiekcie Properties. Czy wiesz, czy to możliwe? Pozdrowienia!
Praca z ramami nie wokół ram. Zasadniczo możesz usunąć całą konfigurację, ponieważ Spring Boot skonfiguruje wszystko automatycznie. Zasadniczo to, co chcesz, działa domyślnie, ale dlatego, że pracowałeś nad wszystkim, co już nie działa. –
Tak, działa po uruchomieniu z usługi. Problem polega na tym, że nie robię tego, kiedy uruchamiam moje testy w warstwie domeny ... Dlatego robię to ręcznie – jscherman
Nie rób tego, powinieneś używać tego samego mechanizmu i nie obchodzić go. –