Java Quarkus Panache Mongo交易
我知道MongoDB的事务支持仍处于实验阶段。。。但我正试图在我的一个项目中使用它,该项目也处于一些早期阶段 因为我没有使用Hibernate。。。我还添加了JTA依赖项,如下所示:Java Quarkus Panache Mongo交易,java,mongodb,quarkus,quarkus-panache,Java,Mongodb,Quarkus,Quarkus Panache,我知道MongoDB的事务支持仍处于实验阶段。。。但我正试图在我的一个项目中使用它,该项目也处于一些早期阶段 因为我没有使用Hibernate。。。我还添加了JTA依赖项,如下所示: <dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-mongodb-panache</artifactId> </depende
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-mongodb-panache</artifactId>
</dependency>
<dependency>
<groupId>io.quarkus</groupId>
<artifactId>quarkus-narayana-jta</artifactId>
</dependency>
但是,不会回滚事务
我还使用了声明性事务实现——同样的行为
作为参考,我使用Panache的活动记录模式
有人遇到过类似的情况吗?带有Panache的MongoDB还不支持事务,请参阅 Quarkus 2.0将提供事务支持(应在6月推出),有了它,您将能够在标记事务边界的方法上使用
@Transactional
,无需额外的库
请注意,MongoDB事务仅在MongoDB 4.0版之后才可用,并且需要一个复制集才能工作。这是什么样的MongoDB部署?@prasad_uu我已经在Kubernetes上运行MongoDB v4.4.4。我的意思是它是集群(复制集或分片集群)还是独立的?独立部署不支持MongoDB事务。@prasad_uuu确定。。。这是一个独立的部署。。。让我试试你的建议。感谢you@prasad_是的。。就这样。我不知道不支持独立部署。不错:)是的,我在GitHub看到了你的公关。迫不及待地想在我的项目中使用它:)
@POST
@Transactional
public Response addServicePlace(@RequestBody(description = "Adds a new record", required = true, content = @Content(mediaType = APPLICATION_JSON, schema = @Schema(implementation = ServicePlaces.class))) @Valid ServicePlaces services, @Context UriInfo uriInfo) {
Service s = new Service();
s.typeId = services.type;
s.title = services.title;
s.persist();
services.descriptions.stream().forEach(c -> {
ServiceDescription serviceDescription = new ServiceDescription();
serviceDescription.lang = c.lang;
serviceDescription.description = c.description;
serviceDescription.serviceId = s.id;
serviceDescription.persist();
});
throw new RuntimeException("BANG!"); ....