diff --git a/src/main/java/com/eactive/apim/portal/apispec/repository/ApiSpecInfoRepository.java b/src/main/java/com/eactive/apim/portal/apispec/repository/ApiSpecInfoRepository.java index 3b2ddff..acd1038 100644 --- a/src/main/java/com/eactive/apim/portal/apispec/repository/ApiSpecInfoRepository.java +++ b/src/main/java/com/eactive/apim/portal/apispec/repository/ApiSpecInfoRepository.java @@ -2,6 +2,7 @@ package com.eactive.apim.portal.apispec.repository; import com.eactive.apim.portal.apispec.entity.ApiSpecInfo; import com.eactive.eai.rms.data.EMSDataSource; +import java.util.Collection; import java.util.List; import java.util.Optional; import org.springframework.data.jpa.repository.JpaRepository; @@ -23,4 +24,14 @@ public interface ApiSpecInfoRepository extends JpaRepository findApiSpecInfoByApiUrlAndApiMethodAndDisplayYn(String apiUrl, String apiMethod, String displayYn); + + /** + * 스펙이 등록된 API ID 만 추린다 - 존재 여부 확인용 ID 프로젝션. + * + *

PTL_API_SPEC_INFO 는 EMSAPP 스키마다. API 그룹(AGWAPP.API_GROUP)과 한 쿼리로 조인하면 + * AGWAPP 커넥션에서 EMSAPP 를 참조하게 되어 ORA-00942 가 난다. 스키마별로 나눠 조회한 뒤 + * 호출부에서 교집합을 잡는다.

+ */ + @Query("SELECT a.apiId FROM ApiSpecInfo a WHERE a.apiId IN :apiIds") + List findApiIdsIn(@Param("apiIds") Collection apiIds); }