Calling method 'get' is not valid without an active transaction
2024-08-30 16:17:18
在进行使用注解来配置Spring和Hibernate的整合的时候, 遇到了这个问题, 它的意思是说在调用'get'方法的时候,没有活动的事务.
原因分析: Hibernate强制要求在进行数据库操作的时候, 都必须包含在事务当中. 这个时候因为没有事务的管理, 因此报了这个错误.
解决办法: 当然是为这个方法开启事务, 开始事务的方法有两种,
1. 使用Transaction transaction = session.beginTransaction(), 或者是
/**
* 查询用户
* @param uid
* @return
*/
@Override
public User get(Integer uid) {
Transaction transaction = session.beginTransaction();
User user = null;
try {
user = session.get(User.class,uid);
transaction.commit();
} catch(Exception e) {
e.printStackTrace();
transaction.rollback();
}
return user;
}
2. 使用注解.
但是目前注解加上去没有能够解决问题, 那么就推荐使用前面一种方法, 在调用get方法的前后加上代码
配置事务有点复杂,暂时写到这里, 等待更新
<!-- 事务管理器配置, Hibernate单数据源事务 -->
<bean id="defaultTransactionManager" class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="sessionFactory" />
</bean> <!-- 使用annotation定义事务 -->
<tx:annotation-driven transaction-manager="defaultTransactionManager" proxy-target-class="true" />
最新文章
- 使用MapReduce实现join操作
- 4s使用iOS 8的一些真實感受
- Android属性动画完全解析(中)
- CentOS 中PHP开启 GD功能
- 动态调用webservice时 ServiceDescriptionImporter类在vs2010无法引用的解决方法
- BootStrap glyphicons字体图标
- BZOJ 2661 连连看
- ORA-25154/ORA-01748
- hash算法-time33算法
- PMBok项目管理
- Linux学习——shell编程之正则表达式和字符处理命令
- java数据结构与算法(一)
- 如何手动实现C语言中的字符串操作
- 【Python3爬虫】自动查询天气并实现语音播报
- 【转载】failed to initialize nvml driver/library version mismatch ubuntu
- 说一说javascript的异步编程
- Winform下如何上传图片并显示出来。同时保存到数据库
- Tomcat环境变量配置命令行报错:The JRE_HOME environment variable is not defined correctl This environment variable is needed to run this program
- “Interrupted by header callback: Server reports Content-Length”如何解决
- linux下一个网卡配置多个ip【虚拟ip】
热门文章
- Ruby 类的创建
- ASP.NET Core MVC 2.x 全面教程_ASP.NET Core MVC 09. Model验证
- C++笔试题(三)
- poj 2492 A Bug&#39;s Life【带权并查集】
- thinkphp5 +elasticsearch
- robotframework自动化系列:文本类型的下拉框
- SQL - 单引号和双引号的区别
- 为什么wait,notify和notifyAll要与synchronized一起使用?
- 构造 Bubble Cup 8 - Finals D. Tablecity
- 在Android 源码中添加系统服务