我正在尝试将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()
. 我猜我的会话会在某个地方结束,但我不知道在哪里以及如何防止这种情况发生。 …