Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何转换spring数据存储库返回的对象?_Java_Spring_Spring Data_Spring Data Jpa_Jpql - Fatal编程技术网

Java 如何转换spring数据存储库返回的对象?

Java 如何转换spring数据存储库返回的对象?,java,spring,spring-data,spring-data-jpa,jpql,Java,Spring,Spring Data,Spring Data Jpa,Jpql,我见过 我也有类似的问题,但我只想从四个字段中得到两个-例如:only id和name from id,name,dateof birth,weight public interface ICatDAO extends CrudRepository<Cat,Long> { @Query(value = "SELECT c.id, c.name FROM Cat c") public List<Cat> findAll(); //...

我见过 我也有类似的问题,但我只想从四个字段中得到两个-例如:only id和name from id,name,dateof birth,weight

 public interface ICatDAO extends CrudRepository<Cat,Long> {

     @Query(value = "SELECT c.id, c.name FROM Cat c")
     public List<Cat> findAll(); 
     //...
 }
公共接口扩展CRUDEPository{
@查询(value=“从类别c中选择c.id、c.name”)
公共列表findAll();
//...
}
如果我使用query:
@query(value=“SELECT c FROM Cat c”)
我得到的对象列表类型为“Cat”,但包含所有字段

如果我使用query:
@query(value=“SELECT c.id,c.name FROM Cat c”)
我会得到对象列表类型“object”,这就是问题所在。在这种情况下我应该怎么做?

建议您使用like

创建您的
CatDto

公共类CatDto{
私人长id;
私有字符串名称;
公共CatDto(长id、字符串名称){
this.id=id;
this.name=名称;
}
//接球手、二传手和其他你需要的东西
}
然后编辑您的回购:

public interface CatRepo extends CrudRepository<Cat,Long> {

    //...
    @Query("select new ...CatDto(c.id, c.name) from Cat c")
    public List<CatDto> getCatDtos(); 
}

你试过你提到的问题的建议答案了吗?即定义DTO并在查询中使用它。您的DTO将有两个字段id和name。非常感谢!:)我是一个学习SpringDataJPA的初学者,我不认为DTO是如此开放的——我可以在我的类的几个字段中使用它,并且总是在我需要它的时候使用它。哇!真的很好@JustynaDamarisBinięda欢迎你!)如果一个答案真的很有用,别忘了给它投票。。。