解决load,get,save 等is not valid without active transaction异常的原因。

org.hibernate.HibernateException:*** is not valid without active transaction 2010-12-09 15:36:07
标签:休闲is not valid without active生活Hibernate职场

Exception in thread "main" org.hibernate.HibernateException: *** is not valid without active transaction
 at org.hibernate.context.ThreadLocalSessionContext$TransactionProtectionWrapper.invoke(ThreadLocalSessionContext.java:338)
 at $Proxy13.getListeners(Unknown Source)
 at org.hibernate.search.backend.impl.EventSourceTransactionContext.getIndexWorkFlushEventListener(EventSourceTransactionContext.java:78)
 at org.hibernate.search.backend.impl.EventSourceTransactionContext.<init>(EventSourceTransactionContext.java:41)
 at org.hibernate.search.impl.FullTextSessionImpl.<init>(FullTextSessionImpl.java:75)
 at org.hibernate.search.Search.getFullTextSession(Search.java:23)
 at com.yin.hibernate.model.GuestBookTest.main(GuestBookTest.java:28)

在网上找的原因是:
如果使用hibernate的getCurrentSession()获得session对象,对查询语句也需要开启事务,不然就会抛出如上异常!
解决方法:
加上  Transaction tx = session.beginTransaction(); 
      tx.commit();
注意:在 hibernate.cfg.xml
如果采用jdbc独立引用程序配置如下:
<property name=”hibernate.current_session_context_class”>thread</property>
如果采用了JTA事务配置如下
<property name=”hibernate.current_session_context_class”>jta</property>

时间: 2024-09-19 10:03:05

解决load,get,save 等is not valid without active transaction异常的原因。的相关文章

Linux系统造成处理Tomcat异常的原因和解决方法

  Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,是开发和调试JSP 程序的首选.对于一个初学者来说,可以这样认为,当在一台机器上配置好Apache 服务器,可利用它响应HTML(标准通用标记语言下的一个应用)页面的访问请求.实际上Tomcat 部分是Apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与Apache 独立的进程单独运行的.因为Tomcat 技术先进.性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商

Validation of viewstate MAC failed异常的原因及解决方法

Validation of viewstate MAC failed异常的原因及解决方法 事件日志里偶尔能发现这个错误,却一直找不到有效的解决方法.经过仔细研究分析之后,发现出现这个错误的概率还是很小的,还需要满足多个条件才行: 1.页面中使用了GridView, DetailsViews, FormView等采用内置数据绑定控件 2.就是这个页面的内容较多,在网速较慢的情况下需要较长的时间才能加载完 3.在页面还没有加载完成的情况下,点击了Postback性质的按钮.如果是get方式的url链

tomcat6下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法_JSP编程

1.在tomcat6.0下jsp出现getOutputStream() has already been called for this response异常的原因和解决方法 在tomcat6.0下jsp中出现此错误一般都是在jsp中使用了输出流(如输出图片验证码,文件下载等),没有妥善处理好的原因. 具体的原因就是: 在tomcat中jsp编译成servlet之后在函数_jspService(HttpServletRequest request, HttpServletResponse res

解决Hibernate4执行save()或update()无效问题的方法_java

最近在写网上商城项目时,遇到一个问题:Hibernate在执行save()或者update()方法后,并没有任何效果,数据库中没有任何改动,而且控制台也没有报任何错,这让我很无语-- 我在网上查了下,有的人说是主键的自增长问题,有的人说是没有开启事务,所以无法写入或更新数据库,我详细看了他们的分析,说的都有道理,但是这些解决方法对我都不管用,因为我的主键是没有问题的,事务是由Spring管理的,在其他save操作都可以,都没有问题. 既然客观上都没有问题,于是我把焦点放在了具体要save或upd

Safe handle has been closed异常的原因及解决思路

Exception: 2013-05-30 19:28:26,750 [3] ERROR Topshelf.Runtime.Windows.WindowsServiceHost Error 0- The service threw an unhandled exception System.ObjectDisposedException: Safe handle has been closed    at System.Runtime.InteropServices.SafeHandle.Dan

WPS2000打印预览“异常”的原因及解决方法

在WPS2000下打印.预览时文件时,每页第一行文字总有部分(或整行)被遮盖,怎么解决这个问题呢?经过摸索发现,这是由于纸张上边距设置不当造成的,解决方法很简单,只需在页面设置中,将纸张上边距设置≥22mm即可.那么,为什么纸张上边距不能小于22mm呢? 查看AR3200+打印机的属性(如图1),我们可以知道,它在纸张上的不可打印区域为:上22.02mm,下12.7mm(查看方法是:点击"我的电脑/打印机/AR3200+",在AR3200+打印机的属性窗口中点击"纸张/无法打

如何解决在上层按键操作alsa code后无法调节驱动音量的原因

http://blog.csdn.net/morixinguan/article/details/56514356 之前写过一篇文章,是对alc5623.c codec部分进行了大致框架的分析,现在要解决一些实际问题,关于上层的代码我就不公布了,只公布在驱动的代码: 在手册中,我们看到一个这样的寄存器设置. 先来看看说明文档,主要是做主音量的输出. 下面就是详细的如何配置0x0C的寄存器 我遇到的问题是,到了上层应用,无法通过按键调节主音量,并会提示: can't find simple con

[原创]分析解决lvs fullnat模式下后端服务器获取真实IP地址异常问题

摘要 分析解决lvs fullnat模式下少量的请求记录client IP不是用户真实的IP地址问题. 原创文章:来自分析lvs fullnat模式下后端服务器获取真实IP地址异常问题 问题背景 lvs fullnat模式下观察后端服务器realserver http/https业务运行系统日志,有时候可以发现有少量的请求记录的client IP不是用户真实的IP地址(存在但出现的概率很小,增加了问题排查的难度),而是属于lvs主机私有的IP地址.关于fullnat的简介可以参考http://w

Win10系统电脑无法登录LOL提示服务器连接异常的原因及解决方法

原因分析: 其实,该问题系统中防火墙导致的. 解决方法: 1.在开始菜单单击右键,点击"控制面板";  2.将查看方式修改为"小图标"或"大图标",然后点击"Windows 防火墙";  3.在左侧点击"启用或关闭 Windwos 防火墙";  4.分别将"专用网络设置"和"公用网络设置"下都点选"关闭 Windwos 防火墙",然后点击确定即可.