The*_*ect 6 java spring hibernate sessionfactory
我正在尝试sessionFactory
使用spring 3.2和hibernate 4 创建bean.我使用了以下代码.但问题是buildSessionFactory()
已弃用,buildSessionFactory(ServiceRegistry serviceRegistry)
建议在javadoc中使用.但是,我无法理解什么是ServiceRegistry以及如何使用buildSessionFactory(ServiceRegistry serviceRegistry)
.
@Configuration
public class AppConfig {
...
@Bean
public SessionFactory sessionFactory() {
return new LocalSessionFactoryBuilder(dataSource())
.scanPackages("com.mypackages")
.addProperties(hibernateProperties())
.buildSessionFactory();
}
}
Run Code Online (Sandbox Code Playgroud)
ServiceRegistry
interface与服务的概念有关(这是Hibernate 4的新特性).服务是为Hibernate提供各种功能的类,用户可以为其插入替代实现.有关详细信息,请参阅此Wiki页面.
你是对的,buildSessionFactory()
在Hibernate的Configuration
类中不赞成使用方法buildSessionFactory(ServiceRegistry serviceRegistry)
.在纯Hibernate的环境中(没有Spring),你应该ServiceRegistry
以这种方式初始化实例:
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
private static SessionFactory configureSessionFactory() throws HibernateException {
Configuration configuration = new Configuration();
configuration.configure();
serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
Run Code Online (Sandbox Code Playgroud)
但到目前为止,已弃用的方法buildSessionFactory()
也会ServiceRegistry
为您执行相同的初始化.
Spring的LocalSessionFactoryBuilder
类只是Hibernate Configuration
类的扩展.但是由于Spring的所有特定工作都是在override方法中完成的,所以LocalSessionFactoryBuilder.buildSessionFactory()
你不能buildSessionFactory(ServiceRegistry serviceRegistry)
在Spring的环境中使用方法.没什么用的buildSessionFactory()
,因为它可以使用完全相同的工作.因此,让我们只是注释方法AppConfig
有@SuppressWarnings("deprecation")
耐心等待春天提供与Hibernate 4更好的集成.
归档时间: |
|
查看次数: |
7167 次 |
最近记录: |