社区首页 >问答首页 >如何在Hibernate中记录DB事务的开始和完成

如何在Hibernate中记录DB事务的开始和完成
EN

Stack Overflow用户
提问于 2015-06-01 06:39:19
回答 4查看 21.2K关注 0票数 25
代码语言:javascript
代码运行次数:0
复制
sql_show = true

hibernate中的这个属性打印正在运行的sql,但是我也希望看到begin transactioncomplete transaction语句,这样我就可以跟踪事务持续时间并查看在哪个事务中运行的查询。

谷歌显示

代码语言:javascript
代码运行次数:0
复制
log4j.logger.org.hibernate.SQL = DEBUG, defaultAppender
log4j.logger.org.hibernate.type = DEBUG, defaultAppender
log4j.logger.org.hibernate.transaction=DEBUG, defaultAppender

也应该向您显示事务级数据。但事实并非如此。

我进一步研究了hibernate代码,并找到了一个类名。

代码语言:javascript
代码运行次数:0
复制
org.hibernate.ejb.TransactionImpl

这个类有开始和完成方法,但是这个方法不记录任何东西。

有什么建议吗?如何在hibernate中查看事务级信息?

我正在使用hibernate 2.2

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-06-01 23:06:27

用于Hibernate 5

  • 对于SLF4J日志记录:
  • 对于Log4j:

用于Hibernate 4

您需要为下列类设置日志阈值以进行调试:

  1. 对于JDBC事务(例如RESOURCE_LOCAL)
代码语言:javascript
代码运行次数:0
复制
- For SLF4J logging:

  1. 用于JTA事务
代码语言:javascript
代码运行次数:0
复制
- For SLF4J logging:

最好为尽可能少的类激活调试级别,否则,日志大小将急剧增加。

票数 43
EN

Stack Overflow用户

发布于 2015-06-01 14:57:43

尝试设置hibernate generate_statistics属性

代码语言:javascript
代码运行次数:0
复制
<prop key="hibernate.generate_statistics">true</prop>

并设定

代码语言:javascript
代码运行次数:0
复制
log4j.logger.org.hibernate=DEBUG

然后您将看到所有hibernate日志,并且您将能够正确地选择hibernate类来登录log4j配置文件。

票数 6
EN

Stack Overflow用户

发布于 2019-10-29 15:24:04

如果您还希望看到新创建的事务的事务隔离级别:

log4j.logger.org.springframework.transaction.support.AbstractPlatformTransactionManager=debug log4j.logger.org.springframework.orm.hibernate5.HibernateTransactionManager=debug log4j.logger.org.springframework.orm.jpa.JpaTransactionManager=debug log4j.logger.org.springframework.jdbc.datasource.DataSourceTransactionManager=debug

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30576385

复制
相关文章
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
可以利用UTL_FILE包,但是,在此之前,要注意设置好UTL_FILE_DIR初始化参数。
AiDBA宝典
2019/09/30
28.8K0
【DB笔试面试511】如何在Oracle中写操作系统文件,如写日志?
Hibernate事务配置
在dao层的工作是连接数据库做各个基本功能,比如增删改查等。而服务层的作用才是去组织dao的小功能去实现完整的业务逻辑并返回结果给web层
木瓜煲鸡脚
2019/09/10
7370
Hibernate事务配置
如何在 MongoDB 中实现事务
在 MongoDB 中,事务可以用于在一个或多个集合上执行多个操作。事务可以帮助确保数据的一致性和可靠性。
玖叁叁
2023/04/14
2.6K0
关于使用MySQL innoDB引擎中事务和锁的信息记录表
字段名 说明 id 一个标识 user 显示当前用户,如果不是root,这 个命令就只显示你权限范围内的sql语句。 host 显示这个语句是从哪个ip的哪个端口上发出的 db 显示 这个进程目前连接的数据库。 command 显示当前连接的执行的命令,一般就是休眠(sleep),查询(query),连接 (connect)。 time 此这个状态持续的时间,单位是秒。 state 显示使用当前连接的sql语句的状态,只是语句执行中的某一个状态,一个sql语句,已查询为例,可能需要经过copying to tmp table,Sorting result,Sending data等状态才可以完成 info 显示这个sql语句,因为长度有限,所以长的sql语句就显示不全,但是一个判断问题语句的重要依据。
袁新栋-jeff.yuan
2020/08/26
1.8K0
关于使用MySQL innoDB引擎中事务和锁的信息记录表
如何在半个工作日内完成20套以上Oracle DB的部署?
最近新项目建设需要(外部开发商程序限制),要求部署20套独立Oracle数据库(缘何如此设计不详,接到任务只能执行)。
杨漆
2021/06/20
2830
如何在半个工作日内完成20套以上Oracle DB的部署?
MySQL中的事务和事务隔离级别
一个事务是一个完整的业务逻辑单元,不可再分。 比如:银行账户转账,从A账户向B账户转账10000.需要执行两条update语句。
共饮一杯无
2022/11/28
7790
Hibernate学习笔记 开始学习
Hibernate是一个优秀的对象关系映射(ORM)框架。如果你有使用纯JDBC写过一个类似博客之类的小程序的话,就知道编写JDBC语句以及转化结果集为Java对象是一件非常繁复的事情。利用Hibernate这样的ORM框架,事情就非常简单了。
乐百川
2022/05/05
2520
【DB笔试面试469】Oracle中如何删除表中重复的记录?
平时工作中可能会遇到这种情况,当试图对表中的某一列或几列创建唯一索引时,系统提示ORA-01452 :不能创建唯一索引,发现重复记录。这个时候只能创建普通索引或者删除重复记录后再创建唯一索引。
AiDBA宝典
2019/09/30
2.8K0
Laravel DB类实现事务
事务主要用于处理操作量大,较复杂的数据,如在某个场景你想删除某个用户,但又要删除这个用户相关的信息,这种操作就构造一个事务。
切图仔
2022/09/08
9000
Hibernate中 hql多条件查询 mysql hql删除记录
session.createQuery(deleteLikeHql).executeUpdate()
全栈程序员站长
2022/09/07
3K0
如何在Python 中更优雅的记录日志?
在 Python 中,一般情况下我们可能直接用自带的 logging 模块来记录日志,包括我之前的时候也是一样。在使用时我们需要配置一些 Handler、Formatter 来进行一些处理,比如把日志输出到不同的位置,或者设置一个不同的输出格式,或者设置日志分块和备份。但其实个人感觉 logging 用起来其实并不是那么好用,其实主要还是配置较为繁琐。
Python数据科学
2019/10/15
1.1K0
如何在Python 中更优雅的记录日志?
如何在Python中实现高效的日志记录
日志记录是软件开发中的重要组成部分,它可以帮助我们监控程序运行状态、诊断问题和优化性能。本文将详细介绍如何在Python中实现高效的日志记录,并提供详细的代码示例。
华科云商小彭
2023/08/29
4180
如何在Python中实现高效的日志记录
SpringMVC中的事务和异常
所以我们service层在添加了try catch日志打印后,抛出的runtime类异常需要在controller层进行捕获,捕获之后,在catch中编写操作失败后返回值的信息。
码客说
2019/10/21
6370
干货!Hibernate事务and并发问题处理
1.事务介绍: 1.1.事务的定义: 事务就是指作为单个逻辑工作单元执行的一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性。 1.2.事务具有ACID属性: o 原子性(Atomic):事务由一个或多个行为绑在一起组成,好像是一个单独的工作单元。原子性确保在事务中的所有操作要么都发生,要么都不发生。 o 一致性(Consistent):一旦一个事务结束了(不管成功与否),系统所处的状态和它的业务规则是一致的。即数据应当不会被破坏。 o 隔离性(Isolated):事务应该
企鹅号小编
2018/02/07
1.8K0
干货!Hibernate事务and并发问题处理
Hibernate中的事务隔离问题(脏读、不可重复读、幻读)
2)一致性:组成事务的各种操作,要么全部成功,要么全部失败。其中有一个失败,事务无法完成
用户2409797
2018/08/30
9030
hibernate3事务不起作用
如果没有如果,也许永远都发现不了这个问题,除非数据出现问题没有回滚。 由于一同事测试事务问题,发现数据不对,事务没有回滚。项目采用shiro+struts2+spring+hibernate,事务配置采用声明式事务。 用于在struts2的action层 aop注解权限,所用使用了cglib动态代理,如下: <aop:aspectj-autoproxy proxy-target-class="true"/> cglib的动态代理是基于任意类的,而JDK的动态代理是必须要实现接口的。而我们系统中service
小柒2012
2018/04/13
1.5K0
如何在 Python 的日志中记录异常的 traceback 信息?
你好,我是征哥,写 Python 的你可能会遇到这种情况,你知道程序报错了,因为这个异常没有被捕捉,也不知道哪行代码出错了,只能手工运行一下看看哪里错了,但是,这个异常很难再次复现。
somenzz
2022/05/24
1.2K0
如何在 Python 的日志中记录异常的 traceback 信息?
Redis中的发布订阅和事务
hello,小伙伴们好久不见!前面我们说了redis中的基本数据类型,本文我们来看看redis中的发布订阅和事务,因为这两个都比较简单,因此我放在一篇文章中来讲。
江南一点雨
2018/07/31
5560
Redis中的发布订阅和事务
hibernate Java 时间和日期类型的 Hibernate 映射
在 Java 中, 代表时间和日期的类型包含: java.util.Date 和 java.util.Calendar. 此外, 在 JDBC API 中还提供了 3 个扩展了 java.util.Date 类的子类: java.sql.Date, java.sql.Time 和 java.sql.Timestamp, 这三个类分别和标准 SQL 类型中的 DATE, TIME 和 TIMESTAMP 类型相应
全栈程序员站长
2022/07/12
1K0
hibernate Java 时间和日期类型的 Hibernate 映射
点击加载更多

相似问题

Hibernate事务id日志记录

11

如何在Hibernate和JPA中记录事务回滚时的异常

14

在Hibernate中等待事务完成

21

春天。使用spring(hibernate)事务的DB事务管理

12

开始事务和提交事务中的混淆

10
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文