我必须在我的存储库中执行 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();}其中 UserProjection 是我定义的投影:public interface UserProjection { String getU_httpstatus(); String getU_queryparam();}userRequestResponse 类具有比 u_httpstatus 和 u_queryparam 更多的字段,但我只想在响应中使用这 2 个字段。public @ResponseBody List<UserRequestResponse> getAllRequestResponseRecords() { return userRequestResponseRepository.findAll() ;}如何修改上面的代码 (findAll()) 以从我的自定义查询中获取结果,而不是从默认的 CrudRepository findAll() (返回所有字段)中获取结果。
1 回答
万千封印
TA贡献1891条经验 获得超3个赞
首先,您不需要添加 a@Query
来使投影起作用。只需将UserProjection
存储库中的方法的返回类型作为方法的返回类型就足够了。
其次,您可以在存储库中将以下方法作为基于投影的 findAll 方法;
public List<UserProjection> findAllProjectedBy();
添加回答
举报
0/150
提交
取消