我必須在我的存儲庫中執行 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
提交
取消