使用@Transactional注释时,我希望数据库操作属于事务范围,如果任何步骤失败,则应执行回滚。
在当前场景中,即使使用@Transactional注释,如果操作失败,回滚也不会完成,从而导致不一致
curl --location --request POST 'http://localhost:8080/deposit' \
--header 'Content-Type: application/json' \
--data-raw '{
"accountNumber": "0000001",
"amount": 999.20
}'
您将看到一个DataWellityViolationExcema被抛出,这是因为历史表有一个定义不明确的字段,其中有一个十进制的金额(2,2)和存款金额不匹配,在这种情况下,我预计帐户余额更新将被逆转,但是这并没有发生。
我看到已经有一个关于问题#651的问题被关闭,但是micronaut数据留档建议此功能工作,因为在第10项中有以下文本:
In addition to this dependency you will need either spring-orm (for Hibernate) or spring-jdbc (for JDBC) on your classpath to enable support for Spring-based transaction management:
你能澄清这一点吗?我们计划将一些应用程序从Spring迁移到micronaut,它们都是用jdbc模板开发的,所以如果我能做到这一点,过渡会容易得多,也许我在留档中丢失了一些东西,或者我在某个时候弄错了,谢谢为了好的工作。
操作系统:Windows11JDK:ZULUJDK11.0。12 Maven 3.6。3微米AUT 2.5。4.
https://github.com/viniciusxyz/micronaut-transaction-failed
2.5.4.
我解决了问题。
只需替换依赖项:
<dependency>
<groupId>io.micronaut.data</groupId>
<artifactId>micronaut-data-spring</artifactId>
<scope>compile</scope>
</dependency>
每:
<dependency>
<groupId>io.micronaut.spring</groupId>
<artifactId>micronaut-spring</artifactId>
<scope>compile</scope>
</dependency>
我是Micronaut框架的新手,我正在尝试使用entitymanager创建我的存储库。我这样创建了我的存储库 我使用这个类实现接口并注入entitymanager 问题是我一直有这个错误: PS:我已经启用了注释处理
是否有任何示例项目展示了如何将Kafka与Micronaut结合使用?我很难让它工作。 我有以下制片人: 听众: 我的申请。yml包含: 以及应用测试。yml(这是正确的吗?它应该与application.yml位于同一目录中吗?还不确定嵌入式服务器应该如何使用): 我的测试结果如下: 我面临的主要问题是: > 我的消费者没有从我的主题中消费。我可以看到制作者在Kafka中创建了主题,并且创建了客
我尝试为API控制器编写UnitTest,它使用来自micronaut-data-jpa的CrudRepository。我使用@mockbean来模拟控制器中的协作存储库。如果我运行测试,我会得到以下错误: 没有这样的方法[findById(java.lang.object)] 我从未使用过Spock、Micronaut-Data或Micronaut-Test,只从以下来源尝试过: https:/
问题内容: 它们都使用相同的语法来插入变量。例如,如果我想要以下内容 在我的下划线中,我的主要EJS中断,因为它试图替换用户名,并且主页中不存在此类变量。 问题答案: 我认为方括号默认情况下可以在EJS中使用: 而且,如果您需要更高级的知识,EJS github页面将介绍如何创建自定义标签: 我认为第二个“更高级”部分可能特定于服务器端应用程序 https://github.com/visionm
更新:链接到repo被移动到回答,因为repo现在使用下面回答中的代码更新。 问题描述 当前代码正在运行,但它正在使用谷歌/云sdk的gcloud测试版模拟器pubsub进行集成测试。 由于google/cloud d-sdk映像的大小,集成测试很慢 pubsub模拟器必须在固定端口上运行,似乎没有办法告诉Micronaut模拟器在哪个端口上运行 我需要在maven surefire插件中设置以下
使用,我在基本模板中定义了一个,其中包含默认内容。在某些情况下,我希望这个块为空,所以我想我可以重新定义它的名称,并使它不包含以下内容: 不知何故,Go似乎认为这个定义是“零”,并且仍然会呈现默认内容,除非我将任何非空白内容放入定义中。 我在Golang repo上发现了这个问题,它在一个游乐场示例中很好地描述了同样的事情: 奇怪的是,这个问题提到它是固定的(如果我理解正确的话,它在1.8.1中着