hibernate 5 创建 Session 时,所需的ServiceRegistry

hibernate 5 创建 Session,代码如下:

SessionFactory factory = null;

Configuration configuration = new Configuration().configure();

configuration.addClass(News.class);

ServiceRegistry registry = new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build();

factory = configuration.buildSessionFactory(registry);

Session session = factory.openSession();

注意:

与之前版本不同的:

1)

configuration.addClass(News.class);

2)

ServiceRegistry的实现需用StandardServiceRegistryBuilder

之前版本用的是 ServiceRegistryBuilder

时间: 2024-11-04 11:24:39

hibernate 5 创建 Session 时,所需的ServiceRegistry的相关文章

hibernate在使用getCurrentSession时提示no session found for current thread

大致错误片段 org.hibernate.HibernateException: No Session found for current thread at org.springframework.orm.hibernate4.SpringSessionContext.currentSession(SpringSessionContext.java:97) 大致问题:hibernate在处理sessoin SessionFactory的getCurrentSession并不能保证在没有当前Se

hibernate中执行hql语句创建session需要的HibernateUtil类

import org.hibernate.HibernateException; import org.hibernate.Session; import org.hibernate.SessionFactory; import org.hibernate.cfg.Configuration; public class HibernateUtil { private static SessionFactory sessionFactory = null; static { try { Confi

hibernate动态创建数据库表名几种方式

数据库中数据量很大, 但又不可以删除时同时又要优化程序检索数据时间. 答:方式有很多比如 创建数据库表分区,创建索引, 存储过程等; 我这里采用动态创建数据库表的方式. 完全可以在不创建表分区情况下实行分表管理 例如 日志记录表 将日期(yyyy-MM)作为默认表后缀动态追加, 例如 文章发布表 将用户名作为后缀名进行动态追加 ; 动态创建数据库表的方式要具体问题具体分析, 比如JDBC中直接使用create table 表名_dynamicStr(...); 文章发布系统 dynamicStr

hibernate中SessionFactory,Session的理解?

Session接口         Session接口对于Hibernate   开发人员来说是一个最重要的接口.然而在Hibernate中,实例化的Session是一个轻量级的类,创建和销毁它都不会占用很多资源.这在实际项目 中确实很重要,因为在客户程序中,可能会不断地创建以及销毁Session对象,如果Session的开销太大,会给系统带来不良影响.但值得注意的是 Session对象是非线程安全的,因此在你的设计中,最好是一个线程只创建一个Session对象.         在Hibern

hibernate的异常 Session was already closed

今天写hibernate时候遇到一些异常 代码: 出现异常情况: 出现以上原因是Session关闭 如果不是使用的SessionFactory.getSession()来获得Session.         而是使用SessionFactory.getCurrentSession()方法来获得Session时,当事务结束的时候,不管是提交还是回滚事务,hibernate会自动关闭Session的, 所以不需要手动关闭.

hibernate自动创建表

配置自动创建表: <prop key="hibernate.hbm2ddl.auto">update</prop>//首次创建项目时用,项目稳定后一般注释 这里有是个值: update:表示自动根据model对象来更新表结构,启动hibernate时会自动检查数据库,如果缺少表,则自动建表:如果表里缺少列,则自动添加列. 还有其他的参数: create:启动hibernate时,自动删除原来的表,新建所有的表,所以每次启动后的以前数据都会丢失. create-d

第四讲 :hibernate中的session

hibernate中的session中可以进行增删改差,通过工具类可以得到相关的工具类. 方法概要:  Transaction beginTransaction()开始一个工作单元,得到关联的事务对象.  void cancelQuery()取消当前执行的查询.  void clear()彻底清除session.  Connection close()通过断开JDBC连结结束 Session和清除.  Connection connection() 得到JDBC连结  boolean conta

分析 org.hibernate.HibernateException: No Session found for current thread

/**      *      * org.hibernate.HibernateException: No Session found for current thread      * 分析:getCurrentSession()和当前事务有关系      *      * Spring hibernate 事务的流程      *      * 1.在方法开始之前      *         ①.获取Session      *         ②.把Session 和当前线程绑定,这样

Hibernate中的Session缓存问题

1. Session 缓存: 1) . 在 Session 接口的实现中包括一系列的 Java 集合 , 这些 Java 集合构成了 Session 缓存 . 它用于存放 Session 关联的对象( Session 关联对象的方式有非常多种. 比如:session.get (Class , OID ). session.update(). session.save ()  ...). 仅仅要 Session 实例没有结束生命周期 , 且没有清理缓存.则存放在它缓存中的对象也不会结束生命周期.