作者热门文章
- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我正在尝试摆脱 Spring JPA Web 应用程序中典型的 persistence.xml
文件。到目前为止,我已经成功地注入(inject)了 EntityManager
:
@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;
}
}
我已经成功地为数据源移动了我的 persistence.xml 的属性:
<properties>
...
<property name="hibernate.dialect" value="org.hibernate.dialect.HSQLDialect"/>
<property name="hibernate.hbm2ddl.auto" value="create"/>
</properties>
但是我如何设置上面剩下的两个 hibernate 属性呢?谢谢
最佳答案
Spring 提供了一种使用 AbstractJpaVendorAdapter
(setDatabase()
和 setGenerateDdl()
以独立于提供者的方式配置这些选项的方法,尽管 setGenerateDdl()
不采用 DDL 模式)。
或者,您可以使用 setJpaProperties()
(或 setJpaPropertyMap()
)将任意属性传递给 LocalContainerEntityManagerFactory
:
Properties props = new Properties();
props.put("hibernate.dialect", "org.hibernate.dialect.HSQLDialect");
props.put("hibernate.hbm2ddl.auto", "create");
factoryBean.setJpaProperties(props);
关于java - 如何在 Spring JPA Web 应用程序中设置一些 Hibernate 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12237003/
我是一名优秀的程序员,十分优秀!