Hibernate如何设置除连接(数据源)之外的文件的所有属性

时间:2016-11-15 09:25:07

标签: java spring hibernate datasource

我们正在使用hibernate 5和spring 4.

获取sessionFactory的bean为

@Autowired
@Bean(name = "sessionFactory")
public SessionFactory getSessionFactory(DataSource dataSource) {

   LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);

   sessionBuilder.setProperty("hibernate.dialect", "org.hibernate.dialect.SQLServerDialect");
   sessionBuilder.setProperty("hibernate.show_sql", "true");
  .....

由于有很多hibernate属性,我试图将它们放在属性文件中,因此应该从除连接之外的文件中读取所有属性。

public SessionFactory getSessionFactory(DataSource dataSource, Properties hibernateProperties) {

    LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);
    sessionBuilder.setProperties(hibernateProperties);

然而,当我运行代码时,我得到来自休眠The application must supply JDBC connections的错误不可用。当我设置属性文件时,似乎忽略了预先设置的dataSource

是否可以修复它?

作为我在下面使用的解决方法,(我不好):

LocalSessionFactoryBuilder sessionBuilder = new LocalSessionFactoryBuilder(dataSource);     

for(Entry<Object, Object> e : hibernateProperties.entrySet()) {
    sessionBuilder.setProperty(e.getKey().toString(), e.getValue().toString());
}

0 个答案:

没有答案