java—如何使用dao在spring引导查询中返回特定的对象属性?

q5iwbnjs  于 2022-12-10  发布在  Java
关注(0)|答案(2)|浏览(355)

在我的spring启动应用程序中,我有一个名为person.class的实体,它包含

long id;
String email;
String name;
String surname;
String address;

在dao类中,我有一个方法:

List<Person> findAllByEmail(String email);

它查询数据库并返回人员列表。
我想返回一个只有一些属性的人员列表,例如:

long id;
String email;

不返回整个对象。
这相当于执行查询:

"select id, email from person where email = ?"

但是我想将函数查询作为

List<Person> findAllByEmail(String email);

不用手写查询。
我该怎么做?

jvidinwx

jvidinwx1#

你可以使用jpa投影
使用所需列的getter创建接口

interface WithIdAndEmail {
   long getId();
   String getEmail();
}

使用该接口作为方法的返回类型

List<WithIdAndEmail> findAllByEmail(String email);
rjjhvcjd

rjjhvcjd2#

从一个方法返回多个值是不可能的。在调用方法中,当对返回的 List<Person> ,您应该从每个 Person 在外面 List 转换为局部变量并处理它们。

相关问题