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

JAVA JPA returning few Entity variables with their names using interface

假设我有一个简单的 class:

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

反过来 returns 我是一个带有 id 和名称的 IHuman 属性数组,但是当解析为 JSON 它没有变量名称并且 returns 只有值:

"content":[["id1","jeff"],["id2","Jones"],...]

所以我的问题是:是否可以使用接口将变量连接到它们相应的值,以获得类似的东西:

"content":[["id":"id1","name":"jeff"],["id":"id2","name":"Jones"],...]

您正在写作

@Query("select r from Human r")
Page<IHuman> getIdAndName();

return 整个 Human 对象。

但是你只需要 id 和 name,所以只在查询中检索它,比如

@Query("select r.id, r.name from Human r")
Page<IHuman> getIdAndName();

这应该将您的界面映射到您的价值观。

我真的不知道 how/why 这行得通,但是没问题: 将查询切换为:

 @Query("SELECT r.id as Id, r.name as Name from human r)
 Page<IHuman> getIdAndName();

并在我的 IHuman class 中添加:

@Value("#{target.Id}")
String getId();
@Value("#{target.Name}")
String getName();