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哇,超级简单的解决方案,甚至没有想到检查。谢谢