问题标签 [quarkus-panache]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2069 浏览

java - 两个表之间的 Quarkus/Hiberante 关系

我尝试使用数据库创建一个简单的 Web 应用程序。我的数据库只有 2 列:

楷模 :

我的 REST 方法

我的代码正在编译,但是当我调用我的 REST 方法时,我收到错误: 在此处输入图像描述

请帮助我做错了什么

0 投票
0 回答
215 浏览

java - 有没有办法使用 IntelliJ IDEA 的“评估查询”功能让 Panache 查询在调试器中工作?

几天前我开始探索 Quarkus 和 Panache,到目前为止,我的体验非常棒。但是,我不知道如何使用 IntelliJ IDEA 中的“评估查询”选项运行 Panache 查询。

如果我使用 运行我的演示应用程序./mvnw compile quarkus:dev,所有定义的端点都可以正常工作并以预期的响应进行响应。例如,我ArticleResource定义了一个这样的方法:

curl使用or查询时返回的数据没有问题http。但是,如果我将调试器连接到应用程序,在方法中的断点处暂停执行并在getAll表达式上使用“评估表达式”函数Article.findAll().page(Page.of(page, 2)).list(),而不是数据库实体,则会引发异常。

异常类型为java.lang.IllegalStateException,详细消息为This method is normally automatically overridden in subclasses: did you forget to annotate your entity with @Entity?

我认为详细消息是一条红鲱鱼,因为我的Article实体@Entity肯定用注释进行了注释,并且还创建了一个相关的数据库表。我尝试了两种将调试器附加到我的应用程序的方法:

  1. 定义一个自定义public static void main方法并像从 IDEA 中的普通 Java 应用程序一样运行应用程序。
  2. 让 IDEA 执行compile quarkus:devMaven 目标,并定义远程调试器连接。

这两种方法都会导致抛出相同的异常。我尝试评估哪些 Panache 查询似乎也无关紧要,即使是一个简单的Article.listAll()调用也会因相同的异常而失败。

我搜索了有关 Maven 工具、IDE 集成和 Panache 等主题的文档,但没有发现任何关于此问题的提及。在搜索异常详细信息时,大多数搜索结果与运行测试套件时遇到此问题的人有关,与调试器无关。

我尝试使用的 JDK 是 GraalVM EE 20.1.0(基于 OpenJDK 11)。

我希望我的解释是可以理解的,并感谢您对此问题的任何见解!

0 投票
1 回答
120 浏览

java - 如果我真的不需要引用的数据,我应该懒惰地定义一个 JPA ManyToOne,还是只在我的实体中映射原始 id?

我有一个您使用 OIDC 登录的应用程序。所以有一个从前端到带有令牌(身份)的 Java / JPA 后端的休息调用。我有一个查找表,它为每个外部令牌 ID 分配一个内部公司 ID:

对于公司的每一组数据条目,这个公司ID是一个外键。但我并不真正需要公司数据——或者仅在极少数特殊情况下。因此,我在考虑是否应该每次都实际检索公司/如何设计 JPA 实体,以便公司表只引用公司 ID 而不是整个公司 - 或者如果我进行惰性映射,这甚至无关紧要?

0 投票
0 回答
155 浏览

quarkus - 有没有办法以“独立方式”在 Quarkus 中使用 Panache

几个月以来,我将 Quarkus 用于我的后端应用程序,今天我有一个特定的用例:我有很多数据库 (sqlite),我无法在 application.propertie 中指定所有这些数据库。因此,我使用 agroal 编写了一些代码来访问我的数据库。问题是,如果我这样做,我想知道如何将它与华丽混合?

Panache & panache 实体非常好用且易于使用,但就我而言,我有点处于框架的边缘,我找不到做我需要的好方法。通过我自己和 agroal 作为一个池来管理我的数据库,它是“低级的”,我找不到如何使用 Panache 的强大功能,而不是手动编写所有 SQL 查询。

非常感谢。

0 投票
1 回答
551 浏览

resteasy - Quarkus + Panache + RestEasy Native Image 构建失败

我有以下简化设置:

1)

2)

3)pom.xml:

4) application.properties

当我使用本机 maven 配置文件(mvn clean package -Pnative)运行它时,我得到:

使用 --report-unsupported-elements-at-runtime 运行它也没有太大帮助。当我删除 MyEntity 类时,它在我的 Mac + Graalvm-ce-java11-20.0.0 上成功编译为本机可执行文件

知道这里有什么问题吗?

0 投票
2 回答
494 浏览

google-cloud-sql - 谷歌云运行 quarkus 谷歌云 sql

我在云运行下部署了一个原生 quarkus 应用程序。此应用程序需要连接到云 sql postgresql 数据库。在配置面板的云运行中,我创建了一个 Cloud SQL 连接(db-instance-name eq.cloud sql)和一些变量作为 DB_USER、DB_PASSWORD、DB_NAME 在 Quarkus 上,我定义如下属性:

我的 pom.xml

云运行启动时,发生异常:

不得不说cloud run是通过cloud build来部署的。

你能帮我解决这个问题吗...谢谢

0 投票
1 回答
474 浏览

quarkus - MongoDB Panache 为写操作返回 void

在'plain vanilla' MongoDB 中,对数据库执行写入操作的方法,例如 .insertOne() 或 .deleteOne(),将分别返回一个InsertOneResultDeleteResult。这些对象将在适用acknowledged的情况下返回一个布尔值。id这使我们能够确保写入操作成功。

然而,在 Panache 中,MongoOperations.class返回的是 void:

MongoOperations.class

那么问题是,我们如何检索结果InsertResultDeleteObject对象?

正在使用 pom 依赖项

0 投票
1 回答
357 浏览

java - 如何解决 java.lang.RuntimeException: RESTEASY007545: Unable to find a MessageBodyReader for media type

我使用的是 Quarkus 版本 1.5.1,但是当尝试发送表单的 LocalDate(或日期)类型的数据时,它返回以下错误消息:

java.lang.RuntimeException:RESTEASY007545:找不到媒体类型的MessageBodyReader:文本/普通;charset = us-ascii 和类类型 java.time.LocalDate

我已经导入了以下依赖项,但错误仍然存​​在。

这是代码:

  • 控制器
  • 实体
0 投票
1 回答
744 浏览

quarkus - 多文档事务的 MongoDB Panache 最佳实践

关于 MongoDB Panache 文档中的以下引用 [ https://quarkus.io/guides/mongodb-panache]

MongoDB 从 4.0 版开始提供 ACID 事务。带有 Panache 的 MongoDB 不为它们提供支持。

因此,是否有推荐的方法或最佳实践来处理多文档事务以确保原子性?

考虑这个例子:

如果我们要手动执行,它将是:

  1. 检查对第二个存储库的写入操作是否失败,以及
  2. 如果是这样,则恢复在carRepository

这种方法充其量似乎是微不足道的,尤其是如果我要写入的存储库超过 2 个。

谢谢。

0 投票
1 回答
793 浏览

java - MongoDB Panache 更新文档中的嵌套对象

我有一个看起来像这样的模型:

但是,由于这是一个嵌套对象,我很难使用以下方法更新它:

我正在使用存储库模式,下面是我的代码片段:

这实际上引发了以下错误:

我目前的方法

目前对我有用的是default void update(Entity entity)在更新嵌套对象时使用。然而,这提出了一些考虑:

  1. 需要额外的代码来获取整个文档、解析和更新所需的字段
  2. 由于update(Entity entity)在文档级别上工作,它还会更新文档中未更改的部分,这并不理想。