我在数据库中有 User
实体,它是 JPA 实体。我还有 UserDescription
类,该类在数据库中没有表。我想使用不同的表和实体实例化 UserDescription
类。但我不想为此使用 EntityManager。所以我找到了可以在@Query注释中使用的SELECT new ...
模式,它是完美的解决方案。
但我有一个简单的问题 - 我需要注释一些应该在接口(interface)中的方法声明。通常它是在 JpaRepository
中完成的,但是 UserDescription
- 不是实体,所以我不能这样做!
此外,我尝试使用使用 @Query
注释进行注释的方法声明创建 POJO 接口(interface)(UserDescriptionService
),尝试在 Controller ()中使用此接口(interface)创建字段,并用 Autowired 对其进行注释,当然得到了:
Field userDescriptionService in UserController required a bean of type 'UserDescriptionService' that could not be found.
那么,如何在 JpaRepository
中使用 @Query
注释,或者如何获取非实体类的 JpaRepository
?
最佳答案
正如 M. Deinum 已经提到的。您不必只返回 JpaRepositories 中的实体。
您可以使用构造函数表达式(又名选择新)或投影。 在此处查找有关预测的更多信息:
https://docs.spring.io/spring-data/jpa/docs/2.0.9.RELEASE/reference/html/#projections
关于java - 使用不在 JpaRepository 中的 @Query 注释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51851417/