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

时间:2020-05-29 01:20:46

标签: java intellij-idea quarkus quarkus-panache

几天前,我开始探索Quarkus和Panache,到目前为止,这种经历是爆炸性的。但是,我无法弄清楚如何使用IntelliJ IDEA中的“评估查询”选项运行Panache查询。

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

@Path("/article")
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public class ArticleResource {
    @GET
    public List<Article> getAll(@QueryParam @DefaultValue("0") Integer page) {
        return Article.findAll().page(Page.of(page, 2)).list();
    }
}

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

异常类型为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:dev Maven目标,并定义一个远程调试器连接。

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

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

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

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

0 个答案:

没有答案