Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/343.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 使用不在JpaRepository中的@Query注释_Java_Spring_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Java 使用不在JpaRepository中的@Query注释

Java 使用不在JpaRepository中的@Query注释,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,我在数据库中有User实体,它是JPA实体。我还有UserDescription类,它在数据库中没有表。我想使用不同的表和实体实例化UserDescription类。但我不想使用EntityManager来实现它。所以我发现选择新的…模式可以用于@Query注释,这是一个完美的解决方案 但我有一个简单的问题——我需要注释一些应该在接口中的方法声明。通常它是在JpaRepository中完成的,但是UserDescription-不是实体,所以我不能这样做 此外,我还尝试使用方法声明创建POJO接

我在数据库中有
User
实体,它是JPA实体。我还有
UserDescription
类,它在数据库中没有表。我想使用不同的表和实体实例化
UserDescription
类。但我不想使用EntityManager来实现它。所以我发现
选择新的…
模式可以用于
@Query
注释,这是一个完美的解决方案

但我有一个简单的问题——我需要注释一些应该在接口中的方法声明。通常它是在
JpaRepository
中完成的,但是
UserDescription
-不是实体,所以我不能这样做

此外,我还尝试使用方法声明创建POJO接口(
UserDescriptionService
),该方法声明使用
@Query
注释进行注释,尝试在controller()中使用该接口创建字段,并使用
自动连线
对其进行注释,当然得到了:

UserController中的字段userDescriptionService需要类型为的bean 找不到“UserDescriptionService”


那么,我如何使用
@Query
注释,而不是
JpaRepository
中的注释,或者如何为非实体类获取
JpaRepository

正如M.Deinum已经提到的那样。您不必仅返回JpaRepositories中的实体

您可以使用构造函数表达式(也称为select new)或投影。 在此处查找有关投影的更多信息:


您可以将该查询放在
UserRepository
中的一个方法上,然后返回一个
列表
没有问题。@M.Deinum请不要在评论中发布答案。我已经厌倦了看已经回答过的问题。@m.Deinum哇,超级简单的解决方案,甚至没有想到检查。谢谢