JAVA JPA使用接口返回一些实体变量及其名称



假设我有一个简单的类:

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();

最新更新