fix: 변환매핑 item이 하나도 없는 변환매핑 로딩 안되는 문제 처리

This commit is contained in:
curry772
2026-08-27 12:03:10 +09:00
parent b1e7883d41
commit 0c048a88fe
3 changed files with 27 additions and 3 deletions
@@ -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) {
@@ -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());
}
}
@@ -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');