将多个表上的SQL JOIN查询转换为数据jpa Query

时间:2016-09-12 14:44:40

标签: sql sql-server spring-data spring-data-jpa jpql

我有以下SQL查询,它正常工作。要么我需要在spring-data @Query中编写这个查询,要么需要执行它并使用ResultMapper将结果映射到对象(不确定哪种方法是正确的)

这是查询

SELECT CR.* 
             FROM CALL_ATTEMPT_RESPONSE CAR 
             INNER JOIN ( 
             SELECT MAX(CALL_ATTEMPT_ID) CALL_ATTEMPT_ID FROM 
             CALL_ATTEMPT 
             WHERE ACCESS_ID = :accessId 
             ) AS CA 
             ON CA.CALL_ATTEMPT_ID = CAR.CALL_ATTEMPT_ID 
             INNER JOIN 
             CALL_RESPONSE CR 
             ON CR.RESPONSE_ID = CAR.CALL_ATTEMPT_RESPONSE_ID 
             AND CR.ACTIVE = 'true' 
             INNER JOIN 
             CALL_QUESTION CQ 
             ON CR.QUESTION_CD = CQ.QUESTION_CD 
             AND CQ.ACTIVE = 'true'

查询将call_attempt_response与max(accessId)上的call_attempt连接在一起 并在响应处于活动状态的response_id上​​与call_response连接 并在question_cd上与call_question连接,其中问题处于活动状态 并检索所有call_attempt_responses。

我需要将其转换为使用spring数据查询的以下内容

@Query("query goes here")
List<CallResponse> findResponsesByAccessId(@Param("accessId") String accessId);

0 个答案:

没有答案