Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 有谁能告诉我在这个查询中出现spring数据投影警告的原因吗?_Java_Spring_Jpa_Intellij Idea_Spring Data Jpa - Fatal编程技术网

Java 有谁能告诉我在这个查询中出现spring数据投影警告的原因吗?

Java 有谁能告诉我在这个查询中出现spring数据投影警告的原因吗?,java,spring,jpa,intellij-idea,spring-data-jpa,Java,Spring,Jpa,Intellij Idea,Spring Data Jpa,我有以下疑问: @Query("select c.status from Component c where c.id = ?1") ComponentStatus findStatusByComponentId(ComponentId id); 为什么IntelliJ警告我:“组件”域类型或此处需要的有效投影接口 有人能帮我吗?可能是因为它违背了Spring数据所期望的模式。你可以这样做: ComponentStatus findStatusById(ComponentId id); 您不

我有以下疑问:

@Query("select c.status from Component c where c.id = ?1")
ComponentStatus findStatusByComponentId(ComponentId id);
为什么
IntelliJ
警告我:“组件”域类型或此处需要的有效投影接口


有人能帮我吗?

可能是因为它违背了Spring数据所期望的模式。你可以这样做:

ComponentStatus findStatusById(ComponentId id);

您不需要编写查询。

任何形式为“
find.*By.+
”的Spring数据存储库方法(例如“
findBy
”或“
findBy
”)如果与有效的派生查询不匹配,都会发出该警告。如果您开始键入“find”并等待“autocomplete”对话框,它将建议一些派生查询方法(或者至少是它们的开始)

如果您继续键入有效的域类型(在我的示例中为RequestSampleTest),则自动完成框将继续更新,并提供更多的可能性(根据实体的不同,可能存在许多派生查询)

本文()非常好地介绍了Spring数据派生查询。它们基本上是执行基本搜索和排序查询的简化方式

请注意:通过在方法名称前面添加“x”,它不再“看起来”是派生查询,因此警告消失了


另外值得注意的是:我认为只有IntelliJ Pro edition提供Spring支持,因此如果您没有看到这些下拉列表,可能是因为您使用的是Community edition。

Update:当我将查询名称更改为“xfindStatusByBundleId”时,警告消失。为什么?对meI来说,这看起来像是一个按照你的建议制作的bug,不起作用,警告仍然存在:/