问题标签 [transactional]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
2263 浏览

hibernate - 通过注释保持休眠会话不过期?-- 懒惰初始化角色集合失败

我有一个休眠 DAO,它在尝试访问作为包/集合的返回对象的成员时抛出“无法延迟初始化角色集合”异常。

我了解引发异常的问题的范围。Hibernate 返回我的对象​​,对于任何集合,返回代理对象。在我的调用者中,当我去访问那些代理对象时,因为休眠会话已经过期,所以抛出了这个异常。

我想知道的是,如何使用注释来防止会话过期?是否可以?

例如,如果我的调用方法是:

我将如何使用注释来防止这种异常?我知道一种解决方案是通过回调扩展休眠会话,在伪代码中可能类似于:

但这在我所有需要访问集合的函数中似乎相当重复。有没有办法简单地在上面打一个@Transactional注释并完成它?如:

感谢您帮助向我解释这一点。

0 投票
1 回答
9101 浏览

hibernate - @Transactional Spring Junit 测试不回滚

我尝试为我的 dao 层设置一个 Junit 测试用例。但是,我希望测试数据实际保存到数据库中。

所以我认为我应该在每次测试后进行事务处理并回滚。这给我留下了以下数据源设置:

待测dao类设置如下:

实际的持久化工作确实工作得很好。但是,从未进行预期的回滚:

TransactionalTextExecutionListener 定义如下:

我正在使用自动装配的成员来访问我的 dao 方法:

TL;博士

JUnit 测试用例会保留测试数据,即使它表明已完成回滚。

0 投票
1 回答
198 浏览

java - 在也使用 aop:after 建议的方法上使用 spring 的 @Transactional

我想看看是否已经有类似的问题,但找不到,就在这里。

我们有一个遗留代码,其中单个 BO 使用反射对许多 DAO 进行方法调用。为了简单起见,我修改了代码。

问题是,要求发生了变化,因此当在 EndpointData1DAO 上调用 insertData() 时,也必须调用 EndpointData2DAO 的 insertData。

我可以简单地将 EndpointData2DAO 添加为 EndpointData1DAO 的成员,但这严重违反了 SRP 并使其变得丑陋。

所以我写了一个注释@ExecuteAfter(clazz=EndpointData2DAO.class, method="insertData"),它获取EndpointData2DAO的一个实例并调用insertData(),在它注释的类的方法被执行之后,通过使用aop:after ,所以给定

1 2 将在调用 machoBO.handleEverthing("Data1"); 时打印出来

现在我的问题是,EndpointData1DAO 和 EndpointData2DAO 的 insertData() 会在同一个物理事务中吗?换句话说,EndpointData2DAO 的 insertData() 中的运行时异常会回滚 EndpointData1DAO 的 insertData() 插入的数据吗?

多谢提前~!!

0 投票
1 回答
3238 浏览

java - @Transactional 在回滚时抛出“事务未成功启动”

我已将以下服务方法注释为事务性:

但是,如果在

激活客户(客户,布尔值,布尔值)

方法,我得到以下错误:

这是我的 application-context.xml 的摘录:

我真的不知道为什么会发生这种情况 - 如果你能帮助我,非常感谢!

0 投票
2 回答
11694 浏览

hibernate - 实体不持久 - Spring + Hibernate + JPA

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

持久性.xml

配置文件

AccountService.java

UserDAOImpl.java

AccountActivationController.java

0 投票
3 回答
2631 浏览

spring-mvc - Liferay 交易指南

我正在从 Liferay 论坛复制 - 两周内没有得到答复。 http://www.liferay.com/community/forums/-/message_boards/message/9384663

我正在寻找文档/博客如何进行 Liferay 交易。

Liferay 6.0.6 PostgreSQL

我有一个 jax-ws Web 服务的钩子。我只使用 Liferay 服务。

例如插入文档并标记它

我需要设置交易。

我的课堂注释

@Transactional 是生命线之一

方法仅用

WS 工作得很好,但没有事务 - 创建文档并且在 NoSuchEntryException 文档保留在 Liferay 之后。

基于以下论坛主题尝试: http ://www.liferay.com/community/forums/-/message_boards/message/9019161

我没有在我的挂钩弹簧配置中做任何事情。

我试图改变隔离等没有成功。

请问有攻略吗?

非常感谢

0 投票
1 回答
1756 浏览

tfs - Team Foundation Server 的备份计划向导中的事务备份间隔是什么意思?

我正在为 Team Foundation Server 设置备份计划。我下载了适用于 TFS 的 Power Tools,并且正在使用该包中包含的备份计划向导。我现在正处于应该决定如何安排备份的步骤,但我不知道为我的设置选择什么。

我明白一切的意思,除了事务备份间隔。 TFS 备份计划向导的屏幕截图,计划选择

我将不胜感激有关良好日程安排的建议。如果可能的话,我想要实现的是能够恢复并仍然回顾几个版本。我想要的最小备份是最新版本。

补充一点可能很重要,我必须提前选择“备份保留天数”并将其设置为 30。

0 投票
1 回答
1031 浏览

unit-testing - Spring Framework - 单元测试设计

我写信是为了尝试发起一些关于 Spring 单元测试,特别是事务单元测试的讨论。

我们目前在各种类中有大约 441 个测试,注释如下:

我们的每个测试类都有自己的测试上下文。

我们面临一个问题,当我们运行单独的测试类或单独的包时,测试运行良好。

但是,当我们想通过使用 maven 或类似的东西(例如 Hudson 集成)来扩展它以运行我们的所有测试(当前 > 400)时。

我们到达一个点,然后开始遇到 Java GC Limit exceeded 错误。

现在我觉得这取决于我们的测试计划设计,而不是我们需要提高任何内存限制或关闭警告。

任何人都可以分享他们的经验以及他们解决类似问题的方式吗?

艾格西

0 投票
1 回答
17282 浏览

hibernate - 嵌套@Transactional

是否可以在 spring 中嵌套 @Transactional 注释方法?考虑这样的事情:

如果我在 b() 中回滚并在 a() 中回滚,在这种情况下会发生什么?

0 投票
2 回答
507 浏览

spring - 在@Transactional Junit 测试中使用来自域对象的双向关联

我设置了@Transactional JUnit 测试,我想将一些测试数据保存到数据库中,并测试关联是否正确。但是,在测试关联时,它们总是评估为 null,即使它在非事务测试中确实有效。

我使用 @Before 注释保留了两个对象:

在测试中访问这两个对象时,我得到了正确的实例:

检查 和 之间的关联时to我得到了正确的参考,因为我明确定义了该关联:

但是当反过来检查时,对象o没有正确更新:

关联在域对象中定义为

One

Two

当我没有以@Transactional 运行测试时,它运行良好。

编辑 保存测试中的实体而不是 @Before 方法,没有任何区别。