From 0c048a88fe1f3b0205381f5bb942b2e29a86ce09 Mon Sep 17 00:00:00 2001 From: curry772 Date: Thu, 27 Aug 2026 12:03:10 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=B3=80=ED=99=98=EB=A7=A4=ED=95=91=20?= =?UTF-8?q?=20item=EC=9D=B4=20=ED=95=98=EB=82=98=EB=8F=84=20=EC=97=86?= =?UTF-8?q?=EB=8A=94=20=EB=B3=80=ED=99=98=EB=A7=A4=ED=95=91=20=EB=A1=9C?= =?UTF-8?q?=EB=94=A9=20=EC=95=88=EB=90=98=EB=8A=94=20=EB=AC=B8=EC=A0=9C=20?= =?UTF-8?q?=EC=B2=98=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../transform/TransformValidator.java | 4 ++-- .../transform/TransformManagerTest.java | 17 ++++++++++++++++- .../eai/transformer/init_tseaitr01_noitem.sql | 9 +++++++++ 3 files changed, 27 insertions(+), 3 deletions(-) create mode 100644 src/test/resources/com/eactive/eai/transformer/init_tseaitr01_noitem.sql diff --git a/src/main/java/com/eactive/eai/transformer/transform/TransformValidator.java b/src/main/java/com/eactive/eai/transformer/transform/TransformValidator.java index f482db3..f79892a 100644 --- a/src/main/java/com/eactive/eai/transformer/transform/TransformValidator.java +++ b/src/main/java/com/eactive/eai/transformer/transform/TransformValidator.java @@ -44,7 +44,7 @@ public class TransformValidator { try { if (!transform.getTransformItemList().iterator().hasNext()) { // throw new TransformerException("source layout does not exist"); - throw new TransformerException("전문레이아웃 매핑에 원천 레이아웃이 없습니다."); + throw new TransformerException("전문레이아웃 매핑에 변환 항목(TSEAITR03)이 없습니다."); } if (transform.getTargetLayout() == null) { @@ -202,7 +202,7 @@ public class TransformValidator { try { if (!transform.getTransformItemList().iterator().hasNext()) { // throw new TransformerException("source layout does not exist"); - throw new TransformerException("전문레이아웃 매핑에 원천 레이아웃이 없습니다."); + throw new TransformerException("전문레이아웃 매핑에 변환 항목(TSEAITR03)이 없습니다."); } if (transform.getTargetLayout() == null) { diff --git a/src/test/java/com/eactive/eai/transformer/transform/TransformManagerTest.java b/src/test/java/com/eactive/eai/transformer/transform/TransformManagerTest.java index c25396d..67b0cad 100644 --- a/src/test/java/com/eactive/eai/transformer/transform/TransformManagerTest.java +++ b/src/test/java/com/eactive/eai/transformer/transform/TransformManagerTest.java @@ -26,7 +26,8 @@ import com.eactive.eai.transformer.message.MessageFactory; @ContextConfiguration(classes = { TransformJPATestConfiguration.class }) @Sql({ "/com/eactive/eai/transformer/init_tseaitr06.sql", "/com/eactive/eai/transformer/init_tseaitr07.sql", "/com/eactive/eai/transformer/init_tseaitr08.sql", "/com/eactive/eai/transformer/init_tseaitr01.sql", - "/com/eactive/eai/transformer/init_tseaitr02.sql", "/com/eactive/eai/transformer/init_tseaitr03.sql" }) + "/com/eactive/eai/transformer/init_tseaitr02.sql", "/com/eactive/eai/transformer/init_tseaitr03.sql", + "/com/eactive/eai/transformer/init_tseaitr01_noitem.sql" }) @TestInstance(TestInstance.Lifecycle.PER_CLASS) class TransformManagerTest { @@ -240,4 +241,18 @@ class TransformManagerTest { } + /** + * TSEAITR03(변환 항목 매핑)이 한 건도 없더라도 TSEAITR01/02 에 등록된 변환은 로딩되어야 한다. + * loadAll() 이 inner join fetch 이면 이 변환은 transformMap 에서 누락되고, + * 호출 시 "전문레이아웃매핑(변환)정보를 찾을 수 없음" 오류가 발생한다. + */ + @Test + void testTransformWithoutTransformItemIsLoaded() { + Transform transform = transformManager.getTransform("TRANSFORM_TST_NOITEM_REQ"); + + Assert.assertNotNull("TSEAITR03 매핑이 없는 변환도 로딩되어야 함", transform); + Assert.assertEquals(0, transform.getTransformItemList().size()); + Assert.assertEquals("TST_TOSSTEST1_TGT", transform.getTargetLayout().getName()); + } + } diff --git a/src/test/resources/com/eactive/eai/transformer/init_tseaitr01_noitem.sql b/src/test/resources/com/eactive/eai/transformer/init_tseaitr01_noitem.sql new file mode 100644 index 0000000..a76ecad --- /dev/null +++ b/src/test/resources/com/eactive/eai/transformer/init_tseaitr01_noitem.sql @@ -0,0 +1,9 @@ +-- 변환 마스터(TSEAITR01) / 레이아웃 지정(TSEAITR02)은 있으나 +-- 변환 항목 매핑(TSEAITR03)은 한 건도 없는 변환. +-- loadAll() 이 inner join fetch 를 쓰면 이 변환은 로딩에서 누락된다. +INSERT INTO tseaitr01 (cnvsnname,cnvsndesc,lastamndhms,eaisevrdstcd,modfimgtstusdstcd,useyn,verinfo,author) VALUES + ('TRANSFORM_TST_NOITEM_REQ', 'TSEAITR03 매핑 항목 없음', '20241226104652 ','E',' ','1','0',NULL); + +INSERT INTO tseaitr02 (cnvsnname,loutname,sourcrsultdstcd) VALUES + ('TRANSFORM_TST_NOITEM_REQ', 'TST_TOSSTEST1_TGT', 'TGT_LAYOUT'), + ('TRANSFORM_TST_NOITEM_REQ', 'TST_TOSSTEST1_SRC', 'SRC_LAYOUT');