【发布时间】:2021-01-15 02:19:58
【问题描述】:
我找到了 quarkus-hibernate-reactive-panache 扩展,但我找不到使用带有响应式存储库的 Panache orm 的示例(在我的情况下,我使用 postgresql)。
PanacheRepositoryBase.java 似乎可以按我的需要工作(smallrye.mutiny.*),有人可以将我链接到一个示例吗?
感谢您的提前,并且在 quarkus 项目上做得很好。
问候
【问题讨论】:
-
在这里也等着。尝试将现有的复杂映射迁移到 Reactive Hibernate,但出现奇怪的异常,例如“原因:org.hibernate.MappingException:无法实例化集合持久化器 org.hibernate.reactive.persister.collection.impl.ReactiveOneToManyPersister”。搜索了它,但谷歌上帝让我失望了!
-
嗨@KrishnaKumar,作为一种工作方法,我们迁移到 panacheRepositories 并封装 Multi/Uni (smallrye) 上的所有操作以维护响应式签名和行为。不是好方法,但现在... public class MyEntityRepositoryImpl implements PanacheRepository
,MyEntityRepository { public Uni findMyEntityById(Long id) { return Uni.createFrom().item(findById(id)).onItem ().transform(mapper::toEntity);但是,您在 quarkus 上构建原生映像时发现“无法实例化...”错误? -
嗨 Dani,我在这里一切正常。我的错误是由于使用了“@ElementCollection”,根据“github.com/hibernate/hibernate-reactive”限制部分,反应性休眠尚不支持。但是当我创建原生镜像时,旧的异常又回来了!!是的,我也返回 Uni/Multi ......现在正试图解决这个问题。没有文档或支持是一件很头疼的事!!! .我没有使用存储库模式,而是为实体扩展 PanacheEntityBase。
-
所以,是的,一切都在 quarkusDev 中工作,但在原生映像中却没有!
-
感谢 Dani,我正在尝试用您提供的见解解决本机图像问题。正如我所说,我扩展了 PanacheEntityBase 并使用 find() 和其他 findBy 方法来获取实体,但是对于持久化,persist() 方法不能按原样工作。所以我正在注入 Mutiny.SessionFactory 工厂;并使用它的 factory.withTransaction((session, transaction) -> {} ) 方法进行持久化。很想知道你是如何处理它的。