问题标签 [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.
java - 两个表之间的 Quarkus/Hiberante 关系
我尝试使用数据库创建一个简单的 Web 应用程序。我的数据库只有 2 列:
楷模 :
我的 REST 方法
我的代码正在编译,但是当我调用我的 REST 方法时,我收到错误: 在此处输入图像描述
请帮助我做错了什么
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
肯定用注释进行了注释,并且还创建了一个相关的数据库表。我尝试了两种将调试器附加到我的应用程序的方法:
- 定义一个自定义
public static void main
方法并像从 IDEA 中的普通 Java 应用程序一样运行应用程序。 - 让 IDEA 执行
compile quarkus:dev
Maven 目标,并定义远程调试器连接。
这两种方法都会导致抛出相同的异常。我尝试评估哪些 Panache 查询似乎也无关紧要,即使是一个简单的Article.listAll()
调用也会因相同的异常而失败。
我搜索了有关 Maven 工具、IDE 集成和 Panache 等主题的文档,但没有发现任何关于此问题的提及。在搜索异常详细信息时,大多数搜索结果与运行测试套件时遇到此问题的人有关,与调试器无关。
我尝试使用的 JDK 是 GraalVM EE 20.1.0(基于 OpenJDK 11)。
我希望我的解释是可以理解的,并感谢您对此问题的任何见解!
java - 如果我真的不需要引用的数据,我应该懒惰地定义一个 JPA ManyToOne,还是只在我的实体中映射原始 id?
我有一个您使用 OIDC 登录的应用程序。所以有一个从前端到带有令牌(身份)的 Java / JPA 后端的休息调用。我有一个查找表,它为每个外部令牌 ID 分配一个内部公司 ID:
对于公司的每一组数据条目,这个公司ID是一个外键。但我并不真正需要公司数据——或者仅在极少数特殊情况下。因此,我在考虑是否应该每次都实际检索公司/如何设计 JPA 实体,以便公司表只引用公司 ID 而不是整个公司 - 或者如果我进行惰性映射,这甚至无关紧要?
quarkus - 有没有办法以“独立方式”在 Quarkus 中使用 Panache
几个月以来,我将 Quarkus 用于我的后端应用程序,今天我有一个特定的用例:我有很多数据库 (sqlite),我无法在 application.propertie 中指定所有这些数据库。因此,我使用 agroal 编写了一些代码来访问我的数据库。问题是,如果我这样做,我想知道如何将它与华丽混合?
Panache & panache 实体非常好用且易于使用,但就我而言,我有点处于框架的边缘,我找不到做我需要的好方法。通过我自己和 agroal 作为一个池来管理我的数据库,它是“低级的”,我找不到如何使用 Panache 的强大功能,而不是手动编写所有 SQL 查询。
非常感谢。
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 上成功编译为本机可执行文件
知道这里有什么问题吗?
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来部署的。
你能帮我解决这个问题吗...谢谢
quarkus - MongoDB Panache 为写操作返回 void
在'plain vanilla' MongoDB 中,对数据库执行写入操作的方法,例如 .insertOne() 或 .deleteOne(),将分别返回一个InsertOneResult
或DeleteResult
。这些对象将在适用acknowledged
的情况下返回一个布尔值。id
这使我们能够确保写入操作成功。
然而,在 Panache 中,MongoOperations.class
返回的是 void:
MongoOperations.class
那么问题是,我们如何检索结果InsertResult
和DeleteObject
对象?
正在使用 pom 依赖项
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
我已经导入了以下依赖项,但错误仍然存在。
这是代码:
- 控制器
- 实体
quarkus - 多文档事务的 MongoDB Panache 最佳实践
关于 MongoDB Panache 文档中的以下引用 [ https://quarkus.io/guides/mongodb-panache]
MongoDB 从 4.0 版开始提供 ACID 事务。带有 Panache 的 MongoDB 不为它们提供支持。
因此,是否有推荐的方法或最佳实践来处理多文档事务以确保原子性?
考虑这个例子:
如果我们要手动执行,它将是:
- 检查对第二个存储库的写入操作是否失败,以及
- 如果是这样,则恢复在
carRepository
这种方法充其量似乎是微不足道的,尤其是如果我要写入的存储库超过 2 个。
谢谢。
java - MongoDB Panache 更新文档中的嵌套对象
我有一个看起来像这样的模型:
但是,由于这是一个嵌套对象,我很难使用以下方法更新它:
我正在使用存储库模式,下面是我的代码片段:
这实际上引发了以下错误:
我目前的方法
目前对我有用的是default void update(Entity entity)
在更新嵌套对象时使用。然而,这提出了一些考虑:
- 需要额外的代码来获取整个文档、解析和更新所需的字段
- 由于
update(Entity entity)
在文档级别上工作,它还会更新文档中未更改的部分,这并不理想。