Sessionfactory.getCurrentSession与 openSession() 的区别
1. getCurrentSession创建的session会和绑定到当前线程,而openSession不会。
2. getCurrentSession创建的线程会在事务回滚或事物提交后自动关闭,而openSession必须手动关闭。
这里getCurrentSession本地事务(本地事务:jdbc)时要在配置文件里进行如下设置
* 如果使用的是本地事务(jdbc事务)
<propertyname="hibernate.current_session_context_class">thread</property>
* 如果使用的是全局事务(jta事务)
<propertyname="hibernate.current_session_context_class">jta</property>
继承Session 方法及说明
1 TransactionbeginTransaction()
开始工作单位,并返回关联事务对象。
2 voidcancelQuery()
取消当前的查询执行。
3 void clear()
完全清除该会话。
4 Connectionclose()
通过释放和清理 JDBC 连接以结束该会话。
5 Criteria createCriteria(ClasspersistentClass)
为给定的实体类或实体类的超类创建一个新的 Criteria 实例。
6 CriteriacreateCriteria(String entityName)
为给定的实体名称创建一个新的 Criteria 实例。
7 SerializablegetIdentifier(Objectobject)
返回与给定实体相关联的会话的标识符值。
8 QuerycreateFilter(Object collection,