当我将Hibernate的版本从3.6.8.final更新到4.0.0.final时,我收到了关于buildSessionFactory()此行中已弃用方法的警告:
private static final SessionFactory sessionFactory =
new Configuration().configure().buildSessionFactory();
Run Code Online (Sandbox Code Playgroud)
javadoc建议使用另一种方法
buildSessionFactory(ServiceRegistry serviceRegistry)
但在文档中我发现了弃用的变体:(
你能帮我解决这个小小的误会吗?
bat*_*tar 373
是的,它已被弃用.用以下内容替换SessionFactory:
在Hibernate 4.0,4.1,4.2中
private static SessionFactory sessionFactory;
private static ServiceRegistry serviceRegistry;
public static SessionFactory createSessionFactory() {
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder().applySettings(
configuration.getProperties()). buildServiceRegistry();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
return sessionFactory;
}
Run Code Online (Sandbox Code Playgroud)
更新:
在Hibernate 4.3中,不推荐使用 ServiceRegistryBuilder .请改用以下内容.
serviceRegistry = new StandardServiceRegistryBuilder().applySettings(
configuration.getProperties()).build();
Run Code Online (Sandbox Code Playgroud)
zie*_*mer 16
是的,它已被弃用. http://docs.jboss.org/hibernate/core/4.0/javadocs/org/hibernate/cfg/Configuration.html#buildSessionFactory()专门告诉你使用你找到的另一种方法(buildSessionFactory(ServiceRegistry serviceRegistry)) - 所以使用它.
文档从发行版复制到发行版,可能还没有更新(它们不会在每个版本中重写手册) - 所以请相信Javadocs.
可以在以下位置查看此更改的细节:
一些额外的参考:
小智 7
要么
public class Hbutil {
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;
}
public static SessionFactory getSessionFactory() {
return configureSessionFactory();
}
}
Run Code Online (Sandbox Code Playgroud)
小智 6
验证代码在Hibernate 4.3.0中工作.请注意,您可以删除XML文件名参数,或者在那里提供自己的路径.这类似于(但是错别字更正)其他帖子,但这一个是正确的.
import org.hibernate.SessionFactory;
import org.hibernate.boot.registry.StandardServiceRegistryBuilder;
import org.hibernate.cfg.Configuration;
import org.hibernate.service.ServiceRegistry;
Configuration configuration = new Configuration();
configuration.configure("/com/rtw/test/hiber/hibernate.cfg.xml");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
170322 次 |
| 最近记录: |