问题标签 [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 投票
5 回答
41456 浏览

java - 事务性保存而不调用更新方法

我有一个用@Transactional 注释的方法。我从我的 Oracle DB 中检索一个对象,更改一个字段,然后从该方法返回。我忘了保存对象,但发现数据库无论如何都会更新。

应用上下文

我的方法

我的问题是为什么 MyObject 会持久化到数据库中?

0 投票
3 回答
14201 浏览

spring - 使用 @Transactional 时此行上有多个标记

例如:

代码编译并运行没有问题。

消息本身:此行有多个标记

  • 工具

com.pname1.pname2.pname3.pname4.PersonDAO.addPersonToDb

  • 建议由

org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation)

我真的不明白这是一个错误还是只是一条消息,查看其他线程人们将其视为错误。我只是担心我的交易是否有效。

好的,该类实现了接口,并且它的方法被注释为 transactional ,这有什么问题吗?

更新:解决了一些小错误,网络应用程序可以工作,但我仍然收到该消息(不是在堆栈跟踪中,而是在断点处):

由 org.springframework.transaction.interceptor.TransactionInterceptor.invoke(org.aopalliance.intercept.MethodInvocation) 建议

现在的情况:

我的交易是否有效?(我没有例外,Web 应用程序运行并且方法有效)

我不明白这条消息是否错误?

0 投票
1 回答
1594 浏览

spring - 关于 Grails 服务的一些问题

我正在使用 Grails Web 应用程序,并且在使用 Grails 服务时遇到了很多奇怪的事情。所以我想问一些关于这个的问题,让我更多地了解 Grails 服务。这对我非常有帮助(也许对其他人也有帮助^_^)。提前致谢。

  1. 如果服务配置为 static transactional = true,它是否会在使用脏的对象调用任何方法后将每个数据更改刷新到 DB 并锁定在 Hibernate 会话中?

  2. 我可以@Transactional在类级别使用注释而不是static transactional = true吗?是否可以使用@Transactional(readOnly = true)一些我只想让他们从数据库中读取(查询、查找)数据的方法?

  3. 事务继承如何?我的意思是,如果父服务已配置static transactional = true,并且子服务有自己的@Transactional注释(在类上)和一些@Transactional(readOnly = true)(在某些方法上),如果我从子服务调用父方法会发生什么?

  4. 事务性是否适用于抽象服务?因为据我所知,使用抽象服务我们无法初始化其 bean,并且可能在启动应用程序时,Grails 上下文存在一些差异。

0 投票
1 回答
104 浏览

sql - SQL:作为表中值的函数查看

我正在使用事务数据库:一个关系数据库,其中表中的一行被定义为数据库在给定时间“认为”该行的字段包含的一组值。

部分架构:

换句话说,虚拟“文章”表有三列:id、标题和正文。

我可以创建临时视图来表示由给定时间定义的虚拟“文章”表:

每次我想查询数据库获取文章时,我都必须创建这三个临时视图,我宁愿不这样做。我更愿意创建永久视图“函数”作为架构本身的一部分:

然后当我想从数据库中选择一篇文章时:

SQL 有没有类似的功能?

0 投票
1 回答
908 浏览

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

在玩 . 时git,我有时会尝试一些东西,然后中止花费太长时间的命令(例如,一些git svn在网络问题期间挂起的命令)。这让我想到:

强制中止命令(Ctrl-C 或kill)总是安全的吗?如果命令崩溃(内存不足、错误、网络/FS 问题)怎么办?从“回滚”不完整的更改(例如在版本控制文件系统中)的意义上说,存储库更改是“事务性的”吗?或者在这种情况下我会冒存储库损坏的风险吗?

我敢肯定从事 git 工作的聪明人一定已经考虑到这一点,但我在 git 手册或在线上找不到任何信息。

0 投票
2 回答
921 浏览

hibernate - 如何将事务添加到 wicket + spring + hibernate 应用程序以进行 junit 测试

嗨,我在运行 junit 测试时遇到以下问题。

我的版本:

休眠 4.0.0 CR7 弹簧 3.1 CR2 检票口 1.5.3

我在这里添加了 tx:annotation-driven 。

所以我的 getUserByName 代码

我的 accountpage 构造函数。

注入有效,但事务设置似乎不起作用。

怎么了?解决问题的最佳方法是什么。我不喜欢使用休眠模板并保持非侵入性休眠方法。

我的 spring+hibernate 测试没有为当前线程找到没有会话,但是如果我使用 wicket 测试器,我就会遇到问题。

0 投票
1 回答
951 浏览

hibernate - 事务不回滚

我在我的应用程序中使用 OpenSessionInView。我的目标是在发生任何异常时以一种方法回滚数据库中的所有更改。这是我的控制器:

使用下面给出的配置,它可以工作:在 web.xml 中:

但是在这种策略中,我无法保存/更新视图中的任何行。所以我像这样覆盖了 OpenSessionInViewFilter:

现在我可以保存/更新,但事务不回滚......如何让它们同时工作?

0 投票
10 回答
343979 浏览

java - Spring @Transactional - 隔离、传播

有人可以通过实际示例解释注释中的隔离传播参数吗?@Transactional

基本上什么时候以及为什么我应该选择更改它们的默认值。

0 投票
1 回答
141 浏览

caching - 您如何通过积极的硬盘缓存和重新排序来保证事务的原子性和文件系统的一致性?

今天的硬盘驱动器正在使用越来越积极的缓存和重新排序,有时甚至完全忽略缓存刷新以提高性能值。

在这种情况下是否可以保证原子性(事务)和一致性?是否有任何已知的方法可以缓解缓存问题?

我读过一篇关于这个主题的论文,其中创建了一个名为“Coerced Cache Eviction”的解决方案来解决日志文件系统的问题。这基本上包括用新的写入填充缓存,导致缓存被刷新。然而,这并不是适用于所有情况的实用解决方案,因为在某些情况下刷新需要几秒钟。很难获得更多信息。

0 投票
0 回答
610 浏览

java - 带有 @Transactional 的 Java Spring 和 Groovy 应用程序 - 注入返回“代理”而不是所需类型

我在现有的 java + spring 项目中添加了一些 groovy 文件。
该项目正在运行(即通过测试)。

我在其中一种 gr​​oovy 方法中添加了“@Transactional”,测试失败了。
(为了添加@Transactional,我不得不将类上的注释从@Service 更改为@Controller,否则@Transactional 将被忽略——呸)。

我开始收到异常
异常各不相同

  1. @Autowired 没有找到任何东西 - NoSuchBeanDefinitionException
  2. 添加 @Qualifier("loadTransactions") 给了我同样的
  3. @Resource 给出了 BeanNotOfRequiredTypeException:名为 'loadTransactions' 的 Bean 必须是 [net.idt.workflow.LoadTransactions] 类型,但实际上是 [$Proxy33] 类型
    (我发现这是一个比我一直使用的 @Autowired 更好的错误消息: -( )

我将类型更改为“对象”并且@Resource 注入工作(我对@Autowired 有点恼火 - 所以我没有费心尝试使用 Object :-/ )

然后我使用了以下常规代码:
  loadTransactions.metaClass.object.process();
我觉得“臭”,但有效。

我的问题是:如何获得我期望的好代码,即
  loadTransactions.process();
我不应该知道@Transactional 正在使用一些代理

感谢您的帮助
Shalom Deitch