使用Spring Data JPA和Spring启动应用程序。我有一个具有很少属性的实体类。考虑我有10个与实体User
相关联的属性,我想只检索其中的几个(用户名,密码,名字,姓氏,电子邮件)。
所以我编写了一个查询来获取5个字段,但该方法不返回实体对象,而是返回一个普通对象。
如何在Spring Data JPA中将查询结果强制转换为实体?
@Query("select userName,password,firstName,lastName,email from User")
public List<User> getUsers();
答案 0 :(得分:4)
您必须创建一个结果类,然后稍微更改一下查询:
package com.example;
public class ResultClass{
String userName,password,firstName,lastName,email;
public ResultClass(String userName, String password
, String firstName, String lastName, String email){
// set fields;
}
}
和查询:
@Query("select new com.example.ResultClass(userName,password
,firstName,lastName,email) from User")
public List<ResultClass> getUsers();
选择顺序必须与构造函数顺序匹配。
答案 1 :(得分:0)
如果您的Target类不是实体类,并且您需要解析,请参考以下答案。