【问题标题】:JAVA JPA returning few Entity variables with their names using interfaceJAVA JPA 使用接口返回几个实体变量及其名称
【发布时间】:2020-06-27 09:28:51
【问题描述】:

假设我有一个简单的类:

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"],...]

【问题讨论】:

    标签: java json jpa interface entity


    【解决方案1】:

    你在写

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

    这将返回整个 Human 对象。

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

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

    这应该将您的界面与您的价值观相对应。

    【讨论】:

      【解决方案2】:

      我确实不知道这是如何/为什么起作用的,但是好的: 将查询切换到:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-05-08
        • 1970-01-01
        • 2022-01-12
        • 1970-01-01
        • 1970-01-01
        • 2012-03-27
        • 1970-01-01
        • 2019-06-10
        相关资源
        最近更新 更多