ServiceRegistry接口与服务的概念有关(对于Hibernate
4是新的)。服务是为Hibernate提供各种功能的类,用户可以为它们插入替代的实现。有关详细信息,请参见此Wiki页面。
没错,
buildSessionFactory()Hibernate的
Configuration类中不赞成使用method,而赞成method
buildSessionFactory(ServiceRegistryserviceRegistry)。在纯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;}但是到目前为止,不推荐使用的方法
buildSessionFactory()也
ServiceRegistry为您执行了相同的初始化。
Spring的
LocalSessionFactoryBuilder类只是Hibernate的
Configuration类的扩展。但是由于Spring的所有特定工作都是在重写方法中完成的,因此
LocalSessionFactoryBuilder.buildSessionFactory()您不能
buildSessionFactory(ServiceRegistryserviceRegistry)在Spring的环境中使用method
。没有什么可以做的
buildSessionFactory(),因为完全可以完成相同的工作。因此,让我们仅在
AppConfig其中注释方法,
@SuppressWarnings("deprecation")并耐心等待Spring提供与Hibernate4更好的集成。



