From e5d0acf694e22f62cf014b18d0900ca9858c70e2 Mon Sep 17 00:00:00 2001 From: Rinjae Date: Mon, 6 Jul 2026 19:45:52 +0900 Subject: [PATCH] =?UTF-8?q?PortalPropertyRepository=20=EC=A4=91=EB=B3=B5?= =?UTF-8?q?=20=ED=82=A4=20=EC=A1=B0=ED=9A=8C=20=EB=A9=94=EC=84=9C=EB=93=9C?= =?UTF-8?q?=20=EC=B6=94=EA=B0=80=20-=20=EB=AC=B4=EA=B2=B0=EC=84=B1=20?= =?UTF-8?q?=EC=A0=90=EA=B2=80=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../repository/PortalPropertyRepository.java | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/main/java/com/eactive/apim/portal/portalproperty/repository/PortalPropertyRepository.java b/src/main/java/com/eactive/apim/portal/portalproperty/repository/PortalPropertyRepository.java index 5a6546e..83a9dd6 100644 --- a/src/main/java/com/eactive/apim/portal/portalproperty/repository/PortalPropertyRepository.java +++ b/src/main/java/com/eactive/apim/portal/portalproperty/repository/PortalPropertyRepository.java @@ -4,8 +4,23 @@ import com.eactive.apim.portal.portalproperty.entity.PortalProperty; import com.eactive.apim.portal.portalproperty.entity.PortalPropertyId; import com.eactive.eai.data.jpa.BaseRepository; import com.eactive.eai.rms.data.EMSDataSource; +import org.springframework.data.jpa.repository.Query; + +import java.util.List; @EMSDataSource public interface PortalPropertyRepository extends BaseRepository { + /** + * (PROPERTY_GROUP_NAME, PROPERTY_NAME) 조합이 2건 이상인 중복 키를 조회한다. + * DB에 유니크 제약을 걸지 않으므로 기동 시 무결성 점검용으로 사용한다. + * + * @return {@code Object[]{propertyGroupName, propertyName, count}} 목록 (중복 없으면 빈 리스트) + */ + @Query("SELECT p.id.propertyGroupName, p.id.propertyName, COUNT(p) " + + "FROM PortalProperty p " + + "GROUP BY p.id.propertyGroupName, p.id.propertyName " + + "HAVING COUNT(p) > 1") + List findDuplicatePropertyKeys(); + }