Quarkus 对 Panache 没有严重依赖?

4nt*_*ine 4 java orm hibernate graalvm quarkus

我喜欢在 Quarkus 中使用 JAX-RS 的想法,因为它会使代码不依赖于框架实现。但是,当涉及到 DB 时,我们建议使用“Panache”并将 DB 实体从PanacheEntity. 我想它对于 AOT 工作(基本上是 Quarkus 正在尝试做的事情)非常方便和有益,并且大大简化了 Quarkus 工作,但是它引入了对特定实现的严重依赖,因此我们不能使用纯 JPA 模块。

这与“干净的架构”相冲突,并使此类 DB 模块的测试变得复杂 [如果可能的话]。假设我希望能够为 Spring 和基于 Quarkus 的应用程序模块使用相同的 DB 模块(仅使用纯 JPA 注释)。它迫使我在设计纯度方面复制代码或作弊。

是否有可能使用纯 JPA 注释进行持久化,并且可能会使用插件(在编译期间修改代码)或使用不进行运行时字节码修改/使用反射的 ORM 框架来付出代价?有什么例子吗?

附注。恭喜1.0发布!干得好,Quarkus 团队。

Lad*_*cek 9

Panache 完全是可选的,您可以坚持使用普通的 JPA,如https://quarkus.io/guides/hibernate-orm 中所述

如果你能解释为什么你认为你必须使用 Panache,我相信这对 Quarkus 团队来说会很有趣。