小编tse*_*ont的帖子

quarkus-hibernate-reactive + Vert.x EventBus 导致 java.lang.IllegalStateException:Session/EntityManager 已关闭

我正在尝试将quarkus-hibernate-reactive扩展与quarkus-vertx扩展一起使用,但在保留数据方面遇到问题。我的项目大致如下:

水果资源:

@Inject
EventBus eventBus;

@POST
public Uni<Response> create(Fruit fruit) {
    if (fruit == null || fruit.getId() != null) {
        throw new WebApplicationException("Id was invalidly set on request.", 422);
    }

    return eventBus.<Void>request("create-fruit", fruit)
        .map(ignore -> Response.ok(fruit).status(201).build());
}
Run Code Online (Sandbox Code Playgroud)

水果服务:

@Inject
FruitRepository fruitRepository;

@ConsumeEvent("create-fruit")
public Uni<Void> createFruit(final Fruit fruit) {
    return fruitRepository.create(fruit);
}
Run Code Online (Sandbox Code Playgroud)

水果库:

@Inject
Mutiny.Session mutinySession;

public Uni<Void> create(final Fruit fruit) {
    return mutinySession
        .persist(fruit)
        .chain(mutinySession::flush);
}
Run Code Online (Sandbox Code Playgroud)

我得到的例外是 a java.lang.IllegalStateException: Session/EntityManager is closed,我认为发生在flush(). 我猜我的会话会在某个地方结束,但我不知道在哪里以及如何防止这种情况发生。 …

postgresql vert.x quarkus hibernate-reactive

5
推荐指数
1
解决办法
2982
查看次数

标签 统计

hibernate-reactive ×1

postgresql ×1

quarkus ×1

vert.x ×1