如何 return spring 中的特定对象属性使用 DAO 引导查询?
How to return specific object attributes in spring boot queries with DAO?
在我的 Spring 引导应用程序中,我有一个名为 Person.class 的实体,其中包含
long id;
String email;
String name;
String surname;
String address;
在DAO class中,我有一个方法:
List<Person> findAllByEmail(String email);
查询数据库和return一个人的列表。
我想要 return 一个只有一些属性的 Person 列表,例如:
long id;
String email;
没有 return 整个对象。
这相当于执行查询:
"select id, email from person where email = ?"
但我想将函数查询维护到 DAO 中作为
List<Person> findAllByEmail(String email);
无需手写查询。
我该怎么做?
不可能从一个方法返回多个值。在您的调用方法中,当迭代返回的 List<Person>
时,您应该从 List
中的每个 Person
读取所需的字段到局部变量中并使用它们。
您可以使用JPA Projections
- 使用所需列的 getter 创建接口
interface WithIdAndEmail {
long getId();
String getEmail();
}
- 将该接口用作方法的 return 类型
List<WithIdAndEmail> findAllByEmail(String email);
在我的 Spring 引导应用程序中,我有一个名为 Person.class 的实体,其中包含
long id;
String email;
String name;
String surname;
String address;
在DAO class中,我有一个方法:
List<Person> findAllByEmail(String email);
查询数据库和return一个人的列表。
我想要 return 一个只有一些属性的 Person 列表,例如:
long id;
String email;
没有 return 整个对象。
这相当于执行查询:
"select id, email from person where email = ?"
但我想将函数查询维护到 DAO 中作为
List<Person> findAllByEmail(String email);
无需手写查询。
我该怎么做?
不可能从一个方法返回多个值。在您的调用方法中,当迭代返回的 List<Person>
时,您应该从 List
中的每个 Person
读取所需的字段到局部变量中并使用它们。
您可以使用JPA Projections
- 使用所需列的 getter 创建接口
interface WithIdAndEmail {
long getId();
String getEmail();
}
- 将该接口用作方法的 return 类型
List<WithIdAndEmail> findAllByEmail(String email);