Hibernate Transaction 与 getCurrentSession() 关系

准静态电磁场 叠加法 缺点:对于连续分布的电荷,叠加法的计算比较困难 虚位移法 概念 广义坐标:确实系统中导体形状、尺寸与位置的一组独立几何量。 广义力:企图改变某一广义坐标的力。 功:广义力乘上由它引起的广义坐标的改变量。 公式 ... 阅读详情

Spring 3.x 与Hibernate 4.x 整合遇到的问题,描述如下:
 
对数据库的 增加、删除、修改 操作需要Spring的事务支持,所以对service层的上述操作增加事务。applicationContext.xml配置如下:
 
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" read-only="false"/>
<tx:method name="save*" propagation="REQUIRED" read-only="false" />
<tx:method name="remove*" propagation="REQUIRED" read-only="false" />
<tx:method name="delete*" propagation="REQUIRED" read-only="false"/>
<tx:method name="modify*" propagation="REQUIRED" read-only="false"/>
<tx:method name="update*" propagation="REQUIRED" read-only="false" />
<tx:method name="*" propagation="SUPPORTS" read-only="true" />
</tx:attributes>
</tx:advice>
 
由于Spring 3.x 对 Hibernate 4.x 不提供 HibernateDaoSupport,所以在dao的实现层注入SessionFactory,从而通过

Session session = sessionFactory.getCurrentSession();
 
来获得当前的session。applicationContext.xm中 sessionFactory的HibernateProperties增加以下属性:
 
<prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop>
 
注意:和Spring2.x不同,不能为thread,否则报错:org.hibernate.HibernateException: save is not valid without active transaction
 
OK,以上配置在 增加、删除、修改 操作时,都能正确执行,事务也正常执行!
 
当执行 查询 操作时,不需要事务的支持,代码如下:
 
public List<Student> getStudentList(String str)
 {
  Session session = sessionFactory.getCurrentSession();
  List<Student> list = null;
  list = session.createQuery(str).list();
  return list;
}
 
问题来了,报错:org.hibernate.HibernateException: No Session found for current thread
 
问题解决:几乎所有正常的操作都必须在transcation.isActive()条件下才能执行。get,load,save, saveOrUpdate,list都属于这类!
 
详情可以查看源码!
 
建议:当方法不需要事务支持的时候,使用 Session session = sessionFactory.openSession()来获得Session对象,问题解决!

基于STM32的HC-SR04超声波模块测距(新手级) 本人是嵌入式新手,学习了STM32的部分内容,最近想找些项目做,然后顺便学习了一下HC-SR04超声波模块,学习过程中也参考了一些大佬的文章。本文记录了自己的学习方法和学习过程,同时也希望能和各位大佬交流讨论。 阅读详情

相关推荐

【宠物识别系统】设计框架

能跑通的 Demo。收集 10,000 张同品种但不同个体的图片。训练ArcFace模型,验证准确率能否达到 99% 以上。搭建Milvus向量数据库。开发移动端 App/小程序。加入“图像质量检测”和“用户反馈纠错”功能。你是更偏向于做软件服务(如寻宠App、保险API),还是做软硬结合的产品(如智能喂食器)?这决定了我们下一步是深挖云端高并发架构,还是边缘端模型压缩。更偏向于软件,应用更广泛些,继续既然专注于纯软件/SaaS (Software as a Service) 方向。

百态·数智思维 | 聚焦大数据、量化与未来AI 1414

Hibernate中的session和transaction详细分析

[color=red]Hibernate中的session,[/color]其实是个实体管理器。Hibernate内存里面的对象主要有三种状态 (1)瞬时状态,即对象刚被new出来的时候 (2)持久化状态,被session管理的时候,比如我们调用session.save(user)时 (3)离线状态,session关闭掉了 那hibernate是如何管理内存里面的对象的呢,其实被hi...

iwillbegenius1的博客 383

稳压二极管选型指南:关键参数与电路稳定性优化

本文深入解析了稳压二极管在电路设计中的核心作用与选型要点。文章详细阐述了稳定电压、动态电阻、额定功耗等关键参数对电路稳定性的影响,并结合实战案例,提供了从需求分析到参数验证的系统化选型流程与优化策略,帮助工程师避免常见设计陷阱,实现电路稳定性优化。

weixin_29196891的博客 686

hibernate中获取session和开启事务时遇到问题及解决

代码 是在spring+hibernate框架下 org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread解决方法 org.hibernate.TransactionException: nested transactions not supported解决方法

name_z的专栏 5686

uniapp - H5人脸识别认证与活体检测功能(纯前端免费方案+微信sdk人脸识别)完整源码,微信公众号网页/h5端人脸识别功能人脸核身(微信方案提供后端spring boot+thinkphp源码

uniapp实现人脸认证,uniAPP h5手机拍照+人脸识别,免费人脸识别插件,前端人脸识别解决方案,uniapp H5人脸识别带前后摄像头,人脸识别在H5页面进行采集,微信公众号H5人脸核身,H5端人脸识别功能实现,免费h5人脸识别插件方案,微信公众号H5网页实现人脸识别,uniapp人脸监测,uniapp人脸生物监测,使用uniapp开发H5人脸采集功能/人脸识别功能,uniapp项目—h5端人脸采集功能实现,uniapp vue3人脸核身,H5活体检测认证,人脸认证张嘴摇摇头指引动作,人脸核身 微信

🏆 前端领域优质创作者 3809

如何设置反馈点

前面的POWER DC仿真都是忽略反馈线进行的仿真,如果单板压降不过,电源会自动调整输出电压,来满足负载的得到额定的电压.可以看到因为设置了反馈点,源端电压就被抬高到满足压降的值了。仿真上也可以自己添加反馈点,以得到抬高后的电源输出电压值。同样以下图的CPU的Core电源为例。按照流程正常设置好参数。

weixin_54787054的博客 1147

hibernate的getSession和getCurrentSession源码解析

Hibernate openSession 测试代码: 1)sf.openSession()时,sessionFactory会new一个新的Session,从配置中读取是否要自动关闭Session,而配置中默认isAutoCloseSessionEnabled为false。 2)session.getTransaction().commit(),提交事务 3)提交完成或回滚完...

fengjianched的专栏 222

YOLOv11改进 | 缝合CCFM轻量检测模型实现高精度跨尺度特征融合【附参考代码】

YOLOv11作为一代优秀的端到端目标检测模型,已经在速度和精度之间取得了较好的平衡。但其默认的Neck结构(通常为FPN + PAN)在处理小目标与多尺度信息时,仍存在信息流冗余、跨尺度特征融合不充分等问题。 本文提出一种轻量化的跨尺度跨通道融合模块(CCFM, Cross-scale and Cross-channel Fusion Module),以替代或增强YOLOv11中的Neck部分,有效提升特征表达能力和检测性能,尤其是在小目标和复杂场景下取得显著涨点。

一键难忘的博客 1413

HibernateTransactionManager事务管理

配置JdbcTemplate:先配置数据源: <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> <property name="driverClassName" value="com.mysql.jdbc.Driver" />

qq_31230529的博客 1147

11、基于拓扑质心和树编辑距离的RNA二级结构比较方法

本文介绍了一种基于拓扑质心和树编辑距离的RNA二级结构比较方法,特别适用于处理具有假结结构的RNA。通过PEELING算法识别拓扑质心并将其转换为树结构,结合树编辑距离进行高效比较,并提供工具planeGraph2tree实现该方法。博文详细描述了方法原理、操作流程以及应用示例,展示了其在功能性非编码RNA分析中的实用性。

resnet7explorer的博客 111

基于 YOLOv26 的 PCB 板缺陷检测:工业级视觉实战

本文提出了一种基于YOLOv26的PCB板缺陷检测系统,通过深度学习技术实现对PCB板缺陷的自动化检测。系统能够识别短路、开路、焊点不良等8种常见缺陷,具有高精度、多类别分类和实时推理等优势。文章详细介绍了系统架构,包括数据采集、预处理、YOLOv26模型检测和后处理模块。在代码实现部分,给出了环境配置、数据预处理与增强的具体方法,使用Albumentations库进行图像增强处理。该系统为电子制造业提供了高效、准确的PCB质量检测解决方案,显著提升了检测效率和准确性。

一键难忘的博客 338

hibernate getCurrentSession和Spring事务管理集成

最近在Java项目中使用到了Spring和hibernate,其中使用到的事务管理,   spring 配置文件 如下   Java代码  public static void main(String[] args) {           ApplicationContext ctx=SpringAppContext.getInstance().get

yuegedetiang的专栏 1668

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

hibernate中的ThreadLocalSessionContext和Transaction的关系

最近在做一个铁科院的医保项目框架是SSH,这种经典框架相信很多人对这个都很熟悉,不过对有些概念性的东西不知道你是否清楚,例如我们都知道hibernate通过session来操作数据库完成CRUD操作,Spring在同hibernate集成的时候可以将hibernate的sessionfactory拿过来管理,为了更方便操作数据库spring封装了一个getHibernateTemplate类,该类

李龙生 2194

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

Hibernate学习笔记——SessionFactory.getCurrentSession()

Hibernate Session获取方法大致有两种:方法1. SessionFactory.openSession();方法2. SessionFactory.getCurrentSession();以前自己写代码都是用方法1取session。今天学会了方法2,以后就可以用它来提高效率了:1.在xml或properties文件里设置current_session_context_class,例如

yzhjisji的专栏 1073

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Hibernate openSession()和getCurrentSession()的区别

附Hibernate的session与本地线程绑定的方法:1.在核心映射文件hibernate.cfg.xml里添加:&lt;!-- 在hibernate.cfg.xml中配置,也就是Hibernate核心配置文件中。配置部位是在第二部分。 --&gt; &lt;property name="hibernate.current_session_context_class"&gt;thread&...

lihai755的博客 439

【Hibernate】(2)Hibernate配置与session、transaction

1. Hibernate经常使用配置 使用hibernate.default_schema属性能够让全部生成的表都带一个指定的前缀。 2. session简单介绍 不建议直接使用jdbc的connection操作数据库,而是通过使用session操作数据库。session能够理解为操作数据库的对象。session与connection是多对一的关系。每一个s...

aodiyi6351的博客 216

hibernate getCurrentSession transaction management standard sample without spring

【代码】hibernate getCurrentSession transaction management standard sample without spring。

qfljg的专栏 195

Could not commit Hibernate transaction,Transaction not successfully started

SessionFactory.getCurrentSession() update 数据出错: org.springframework.transaction.TransactionSystemException: Could not commit Hibernate transaction; nested exception is org.hibernate.TransactionExcep...

MEMORY 1091

spring和hibernate整合使用getCurrentSession方法

spring和hibernate整合使用getCurrentSession()方法获得session实例时,一定记得在sessionFactory的bean中添加thread,完整代码如下: class="org.springframework.orm.hibernate4.LocalSessionFactoryBean"> org.hibernate.dialect.

大尾猴的博客 4640

Hibernate4中使用getCurrentSession报Could not obtain transaction-synchronized Session for current

架个spring4+hibernate4的demo,dao层直接注入的sessionFactory,然后用getCurrentSession方法获取session,然后问题来了,直接报错: Could not obtain transaction-synchronized Session for current thread 提示无法获取当前线程的事务同步session,略微奇怪,这和事务有...

IT--LPF 262

Hibernate SessionFactory getCurrentSession is not valid without active transaction

I am facing one problem in Hibernate. Here is the code. Configuration cfg = new Configuration().configure(); SessionFactory factory = cfg.buildSessionFactory(); Session session = factory.ope

qq_31230529的博客 697

Hibernate的Session和transaction

hibernate执行流程: session:一次会话 可以理解session:操作数据库的对象 session与connection关系,多对一的关系   说明使用同一个connection 详情: 1、获取 openSession()getCurrentSession() 区别: 1 getCurrentSession(使用现有的对象)创建的sessio

zucker 1155

org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current...

最近遇到了这样的一个错误: org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread 原来是在Dao组件的实现类中获取session时引起的,如下的一个类: public class UserDaoImpl extends HibernateDaoS...

llc950819的博客 1986

Hibernate4中使用getCurrentSession报Could not obtain transaction-synchronized Session for current thread

Dao层直接注入的sessionFactory,然后用getCurrentSession方法获取session,然后问题来了,直接报错: org.hibernate.HibernateException: Could not obtain transaction-synchronized Session for current thread at org.s

xdy3008的专栏 803

spring管理hibernate4 transaction getCurrentSession为什么报错?

hibernate4不支持你用hibernate3的 getcurrentSession,建议你用openSession 转载于:https://www.cnblogs.com/raphael5200/p/6189700.html

141

Hibernate SessionFactory 核心原理与生产级配置指南

SessionFactory 是 Hibernate 运行时的元数据中枢,承载映射定义、SQL 方言编译、二级缓存注册与连接适配等关键能力。其本质并非简单对象工厂,而是不可变、线程安全的运行时真相源——所有 Session 均为其影子副本。正确理解 getCurrentSession 与 openSession 的生命周期契约,是规避懒加载异常、连接泄漏和事务不一致的前提;而 openStatelessSession 则代表极致轻量的数据搬运范式。在高并发、微服务与批处理场景下,SessionFactory

weixin_34290631的博客 441
上一篇: apache限制并发数 IP 带宽设置教程
下一篇: Spring Web Flow 2.0 入门
webrobot
博客等级 码龄23年 111粉丝 69原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值