假设我有一个简单的类:
public class Human{
private String id;
private String name;
priavte String surname;
priavte String something;
priavte String something2;
//geters setters
}
我已经宣布了一个接口
public interface IHuman{
String getId;
String getName;
}
在我的存储库中,我称之为:
@Query("select r from Human r")
Page<IHuman> getIdAndName();
这反过来又给我返回了一个带有id和name的IHuman数组,但当解析为JSON时,它没有变量名,只返回值:
"content":[["id1","jeff"],["id2","Jones"],...]
所以我的问题是:是否可以使用接口将变量连接到它们对应的值,以获得类似于的东西
"content":[["id":"id1","name":"jeff"],["id":"id2","name":"Jones"],...]
您正在编写
@Query("select r from Human r")
Page<IHuman> getIdAndName();
这将返回整个Human
对象。
但是你只需要id和name,所以只需要在查询中检索,比如
@Query("select r.id, r.name from Human r")
Page<IHuman> getIdAndName();
这应该将你的界面与你的价值观相映射。
我当然不知道这是如何/为什么工作的,但好吧:将查询切换到:
@Query("SELECT r.id as Id, r.name as Name from human r)
Page<IHuman> getIdAndName();
在我的IHuman课程中,我添加了:
@Value("#{target.Id}")
String getId();
@Value("#{target.Name}")
String getName();