Comment définir certaines propriétés Hibernate au Printemps JPA Application Web?
Je suis en train d'essayer de se débarrasser de la typique persistence.xml
fichier au Printemps JPA application web. Jusqu'à présent, j'ai réussi à injecter le EntityManager
avec succès les suivantes:
@Configuration
@EnableTransactionManagement
public class JpaConfig {
@Bean
public LocalContainerEntityManagerFactoryBean entityManagerFactoryBean(){
LocalContainerEntityManagerFactoryBean factoryBean
= new LocalContainerEntityManagerFactoryBean();
factoryBean.setDataSource( this.restDataSource() );
factoryBean.setPackagesToScan( new String[ ] { "com.jverstry" } );
factoryBean.setPersistenceUnitName("MyMy");
JpaVendorAdapter vendorAdapter = new HibernateJpaVendorAdapter(){
{
//JPA properties ...
}
};
factoryBean.setJpaVendorAdapter( vendorAdapter );
return factoryBean;
}
@Bean
public DataSource restDataSource(){
DriverManagerDataSource dataSource = new DriverManagerDataSource();
dataSource.setDriverClassName("org.hsqldb.jdbcDriver");
dataSource.setUrl("jdbc:hsqldb:mem:testdb");
dataSource.setUsername("sa");
dataSource.setPassword("");
return dataSource;
}
@Bean
public PlatformTransactionManager transactionManager(){
JpaTransactionManager transactionManager = new JpaTransactionManager();
transactionManager.setEntityManagerFactory(
this.entityManagerFactoryBean().getObject() );
return transactionManager;
}
}
J'ai réussi à faire bouger les propriétés de mon persistence.xml pour la source de données:
<properties>
...
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
mais comment j'ai mis les deux autres hibernate propriétés ci-dessus? Grâce
- voir aussi stackoverflow.com/questions/7416024/...
Vous devez vous connecter pour publier un commentaire.
Printemps fournit un moyen de configurer ces options de fournisseur de manière indépendante à l'aide de
AbstractJpaVendorAdapter
(setDatabase()
etsetGenerateDdl()
, sisetGenerateDdl()
ne pas prendre DDL mode).Alternativement, vous pouvez passer des propriétés arbitraires à
LocalContainerEntityManagerFactory
à l'aide desetJpaProperties()
(ousetJpaPropertyMap()
):C'est une vieille question, mais peut aider quelqu'un qui en est à l'aide de XML pour la configuration.