hibernate配置error1
来源:互联网 发布:系统加速软件 编辑:程序博客网 时间:2024/05/29 18:51
ssh搭环境hibernate 实现sessionFactory时intelli idea 显示错误
无法解析 org.hibernate.service.ServiceRegistryBuilder
private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); //sessionFactory中用的是线程池技术
private static org.hibernate.SessionFactory sessionFactory; //sessionFactory:创建session的工厂
private static Configuration configuration = new Configuration();
private static ServiceRegistry serviceRegistry; static { //类加载时初始化sessionFactory try { configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); sessionFactory = configuration.buildSessionFactory(serviceRegistry); //Hibernate4中创建sessionFactory的方法 } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } }网上找到问题所在
原因是hibernate4.2版本后弃用了 org.hibernate.service.ServiceRegistryBuilder类
hibernate 4.3版本后可以改成
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder().applySettings(config .getProperties()).build();
附源码 (eclipse ee环境)
package com.eshop.service;import org.hibernate.HibernateException;import org.hibernate.Session;import org.hibernate.cfg.Configuration;import org.hibernate.service.ServiceRegistry;import org.hibernate.service.ServiceRegistryBuilder;@SuppressWarnings("deprecation")public class HibernateSessionFactory { private static final ThreadLocal<Session> threadLocal = new ThreadLocal<Session>(); //sessionFactory中用的是线程池技术 private static org.hibernate.SessionFactory sessionFactory; //sessionFactory:创建session的工厂 private static Configuration configuration = new Configuration(); private static ServiceRegistry serviceRegistry; static { //类加载时初始化sessionFactory try { configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); //error1 sessionFactory = configuration.buildSessionFactory(serviceRegistry); //Hibernate4中创建sessionFactory的方法 } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } private HibernateSessionFactory() { //私有构造方法阻止new出对象,保证sessionFactory的单例 } public static Session getSession() throws HibernateException { Session session = (Session) threadLocal.get(); //从线程池中拿session if (session == null || !session.isOpen()) { //如果线程池是空的,或者session打开失败 if (sessionFactory == null) { rebuildSessionFactory(); //如果sessionFactory是空的,那就再创建一次,和static部分一样的 } session = (sessionFactory != null) ? sessionFactory.openSession() : null; //sessionFactory不为空就创建一个session threadLocal.set(session); //然后把这个session放到线程池中,下次再拿 } return session; } public static void rebuildSessionFactory() { try { configuration.configure(); serviceRegistry = new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry(); //error2 同上 sessionFactory = configuration.buildSessionFactory(serviceRegistry); } catch (Exception e) { System.err.println("%%%% Error Creating SessionFactory %%%%"); e.printStackTrace(); } } public static void closeSession() throws HibernateException { Session session = (Session) threadLocal.get(); threadLocal.set(null); if (session != null) { session.close(); } } public static org.hibernate.SessionFactory getSessionFactory() {//提供一个公共接口让外界获得这个单例sessionFactory return sessionFactory; } public static Configuration getConfiguration() { return configuration; } }
阅读全文
0 0
- hibernate配置error1
- spring配置error1 hibernate的事务的配置
- error1
- error1 .ldr
- pb-connect-oracle-error1
- Xilinx_FPGA_SOC ERROR1 解决
- hibernate-hibernate的配置
- 【Hibernate】2.Hibernate配置
- Hibernate 配置!
- Hibernate配置
- Hibernate配置
- Hibernate 配置
- Hibernate配置
- Hibernate配置
- Hibernate配置
- Hibernate配置
- hibernate 配置
- Hibernate 配置
- PostgreSQL(四)存储结构
- 11.4作业
- Java笔记
- python 简单打包
- gazebo
- hibernate配置error1
- Lvs+Ldirectord+Heartbeat
- hbase版本对应的hadoop版本
- 事件委托 on和delegate的适用区别 jquery
- JAVA_编程案例_1!+2!+3!+...+s!=total_打印阶乘之和
- 【PHP进阶学习】——Trait代码复用类
- SQL标准中的四种隔离级别
- 红黑树*
- Dubbox本地 JAR包部署与安装