我们正在使用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());
}