Java Quarkus Panache Mongo交易

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

我知道MongoDB的事务支持仍处于实验阶段。。。但我正试图在我的一个项目中使用它,该项目也处于一些早期阶段

因为我没有使用Hibernate。。。我还添加了JTA依赖项,如下所示:

    <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!"); ....