Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/308.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 我们如何在crudepository中实现定制的find方法,以便只从数据库中获取特定的列?_Java_Spring_Hibernate - Fatal编程技术网

Java 我们如何在crudepository中实现定制的find方法,以便只从数据库中获取特定的列?

Java 我们如何在crudepository中实现定制的find方法,以便只从数据库中获取特定的列?,java,spring,hibernate,Java,Spring,Hibernate,我必须在我的存储库中执行SQL查询: public interface UserRequestResponseRepository extends JpaRepository<UserRequestResponse, Integer> { //public static final String FIND_QUERY = "select user.u_httpstatus ,user.u_queryparam from UserRequestResponse user";

我必须在我的存储库中执行SQL查询:

public interface UserRequestResponseRepository extends JpaRepository<UserRequestResponse, Integer> {
    //public static final String FIND_QUERY = "select user.u_httpstatus ,user.u_queryparam from UserRequestResponse user";
    public static final String FIND_QUERY = 
            "select new com.abc.datacollection.entity.UserRequestResponse(user.u_httpstatus ,user.u_queryparam) from UserRequestResponse user";
    @Query(value = FIND_QUERY)
    public List<UserProjection> getAllRequestResponseRecords();
}
类userRequestResponse的字段比u_httpstatus和u_queryparam多,但我只希望在响应中包含这两个字段

public @ResponseBody List<UserRequestResponse> getAllRequestResponseRecords() {
    return userRequestResponseRepository.findAll() ;
}
public@ResponseBody List getAllRequestResponseRecords(){
返回userRequestResponseRepository.findAll();
}

如何修改上述代码(findAll())以从自定义查询中获取结果,而不是从默认的CRUDepository findAll()中获取结果(返回所有字段)。

首先,无需添加
@query
即可进行预测。只要将
UserProjection
作为存储库中方法的返回类型就足够了。更多关于这个

其次,您可以在存储库中使用以下方法作为基于投影的findAll方法:

public List<UserProjection> findAllProjectedBy();
公共列表findAllProjectedBy();

首先,您不需要添加
@Query
来进行预测。只要将
UserProjection
作为存储库中方法的返回类型就足够了。更多关于这个

其次,您可以在存储库中使用以下方法作为基于投影的findAll方法:

public List<UserProjection> findAllProjectedBy();
公共列表findAllProjectedBy();

嘿,我想使用query来执行更复杂的SQL操作,如基于组的计数等。在这种情况下,我如何更改投影?或者,还有其他方法吗?@ABHINAVSOOD我不明白,你的问题是,我如何从
findAll
获得
UserProjection
响应,对吗?我回答了。额外的问题请问另一个。谢谢你的回答。你能跟随这个链接吗,我在这里发布了我的问题:嘿,我想用query做更复杂的SQL操作,比如基于组的计数,等等。在这种情况下,我如何更改投影?或者,还有其他方法吗?@ABHINAVSOOD我不明白,你的问题是,我如何从
findAll
获得
UserProjection
响应,对吗?我回答了。额外的问题请问另一个。谢谢你的回答。你可以点击这个链接吗?我已经在这里发布了我的问题: