transactional相关内容

外行术语中的 Spring 传播示例

Spring 文档做一个描述事务传播属性的出色工作. 但是,我想知道是否有任何众所周知的真实示例可用外行术语更全面地描述这些属性中的每一个? 解决方案 PROPAGATION_REQUIRED 类服务{@Transactional(传播=传播.需要)公共无效doSomething(){//使用 DAO 访问数据库}} 当 doSomething() 被调用时,它会开始一个新的事务 ..
发布时间:2022-01-13 10:32:28 Java开发

如果修改它的命令崩溃或中止,git 存储库会损坏吗?

在玩 git 时,我有时会尝试一些东西,然后中止花费太长时间的命令(例如,一些在网络问题期间挂起的 git svn 命令).这让我想到: 强制中止命令(Ctrl-C 或 kill)总是安全的吗?如果命令崩溃(内存不足、错误、网络/FS 问题)怎么办?从“回滚"不完整的更改(例如在版本控制文件系统中)的意义上说,存储库更改是“事务性的"吗?还是在这种情况下我会冒存储库损坏的风险? 我相信 ..
发布时间:2022-01-12 11:17:23 其他开发

Hibernate SQLQuery 绕过休眠会话缓存

我正在“事务化"一些广泛的数据库操作,我遇到了这个问题,如果我通过 hibernate 运行 sql 查询但不使用 MQL 方法,则数据库的视图看起来不正确.具体来说,代码在大多数情况下以更合适的方式使用休眠,但有些地方有人决定只执行 sql.我不喜欢他们这样做,但在这一点上“就是这样". 我发现了一个 explanation 似乎解释了它,但所有示例实际上都是在代码中获取和管理事务.我们在 ..
发布时间:2022-01-06 20:44:42 其他开发

如果修改它的命令崩溃或中止,git 存储库是否会损坏?

在玩 git 时,我有时会尝试一些东西,然后中止花费太长时间的命令(例如,某些 git svn 命令在网络问题期间挂起).这让我想到: 强制中止命令(Ctrl-C 或 kill)总是安全的吗?如果命令崩溃(内存不足、错误、网络/FS 问题)怎么办?从不完整的更改被“回滚"(如在版本控制文件系统中)的意义上说,存储库更改是否是“事务性的"?或者,在这种情况下,我是否有存储库损坏的风险? ..
发布时间:2022-01-06 20:40:36 其他开发

实体不持久 - Spring + Hibernate + JPA

我正在使用 Spring + Hibernate + JPA,但我遇到了无法让我的实体持久保存到数据库的情况.我已经设置了一个用@Transactional 注释的服务类.它使用包含注入的 EntityManager 的 DAO.当我在服务对象上调用该函数时,我看到 DAO 正在执行的读取的一堆选择,但由于我的 DAO 发出的合并和删除没有更新/删除.我的设置肯定有问题,但我看不到. 持久性 ..

为什么@Transactional 会自动保存到数据库

我有一个用@Transactional 注释的方法.我从我的数据库中检索一个对象,更改一个字段,然后从该方法返回.没有保存我的对象,数据库无论如何都会更新,这很奇怪. 你能告诉我如何避免这种行为吗? 解决方案 这种行为是事务性的主要目的之一. 在事务方法即将返回之前,事务提交,这意味着对托管实体的所有更改都会刷新到数据库中. 如果发生错误,事务将回滚,这意味着不会向数据库 ..
发布时间:2022-01-06 20:33:09 其他开发

声明式事务 (@Transactional) 在 Spring 中不适用于 @Repository

我正在尝试使用 Spring、JPA 和嵌入式 H2 数据库制作简单的应用程序.最近我遇到了声明式事务的这个奇怪问题.如果我使用 @Repository 注释自动装配我的 DAO,他们就不会提交.更具体地说,我在刷新时遇到异常: javax.persistence.TransactionRequiredException:异常描述:当前没有活动的事务 这是我的设置: 持久性.xml ..
发布时间:2022-01-06 20:29:11 Java开发

Spring:已检查异常的自动回滚

配置 Spring 以在非 RuntimeExceptions 上回滚的一种方法是在服务类上使用 @Transactional(rollbackFor=...) 注释.这种方法的问题是我们需要为几乎所有看起来非常多余的服务类定义 (rollbackFor=...). 我的问题:有什么方法可以配置 Spring 事务管理器的默认行为,以便在非 RuntimeException 发生时回滚,而无 ..
发布时间:2022-01-06 20:28:11 Java开发

@Transactional 方法在没有 @Transactional 注释的情况下调用另一个方法?

我在 Service 类中看到一个方法被标记为 @Transactional,但它也在调用同一类中的一些其他方法,这些方法没有被标记为 @Transactional. 这是否意味着对单独方法的调用导致应用程序打开与 DB 的单独连接或暂停父事务等? 一个没有任何注释的方法被另一个带有 @Transactional 注释的方法调用的默认行为是什么? 解决方案 当您在事务块内调用没 ..
发布时间:2022-01-06 20:13:37 Java开发

在日志中显示 Spring 事务

我为 spring 配置了事务支持.有没有办法记录交易以确保我正确设置所有内容?在日志中显示是查看正在发生的事情的好方法. 解决方案 在您的 log4j.properties 中(对于替代记录器,或 log4j 的 xml 格式,请查看文档) 根据您的事务管理器,您可以设置 spring 框架的日志记录级别,以便它为您提供有关事务的更多信息.例如,在使用 JpaTransaction ..
发布时间:2022-01-06 20:10:49 Java开发

为什么将@Transactional 与@Service 一起使用而不是与@Controller 一起使用

我在 stack-overflow 文章中看到了很多评论,我发现了一些关于 @Transactional 与 @Service 或 @Controller 一起使用的事情 “通常,应该将事务放在服务层." “正常情况是在服务层级别进行注释" "认为事务属于服务层.它是了解工作单元和用例的人.如果您将多个 DAO 注入到需要在单个事务中协同工作的服务中,这是正确的答案."[来源] ..
发布时间:2021-12-27 21:10:25 其他开发