fix: 변환매핑 item이 하나도 없는 변환매핑 로딩 안되는 문제 처리
This commit is contained in:
@@ -44,7 +44,7 @@ public class TransformValidator {
|
|||||||
try {
|
try {
|
||||||
if (!transform.getTransformItemList().iterator().hasNext()) {
|
if (!transform.getTransformItemList().iterator().hasNext()) {
|
||||||
// throw new TransformerException("source layout does not exist");
|
// throw new TransformerException("source layout does not exist");
|
||||||
throw new TransformerException("전문레이아웃 매핑에 원천 레이아웃이 없습니다.");
|
throw new TransformerException("전문레이아웃 매핑에 변환 항목(TSEAITR03)이 없습니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transform.getTargetLayout() == null) {
|
if (transform.getTargetLayout() == null) {
|
||||||
@@ -202,7 +202,7 @@ public class TransformValidator {
|
|||||||
try {
|
try {
|
||||||
if (!transform.getTransformItemList().iterator().hasNext()) {
|
if (!transform.getTransformItemList().iterator().hasNext()) {
|
||||||
// throw new TransformerException("source layout does not exist");
|
// throw new TransformerException("source layout does not exist");
|
||||||
throw new TransformerException("전문레이아웃 매핑에 원천 레이아웃이 없습니다.");
|
throw new TransformerException("전문레이아웃 매핑에 변환 항목(TSEAITR03)이 없습니다.");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (transform.getTargetLayout() == null) {
|
if (transform.getTargetLayout() == null) {
|
||||||
|
|||||||
@@ -26,7 +26,8 @@ import com.eactive.eai.transformer.message.MessageFactory;
|
|||||||
@ContextConfiguration(classes = { TransformJPATestConfiguration.class })
|
@ContextConfiguration(classes = { TransformJPATestConfiguration.class })
|
||||||
@Sql({ "/com/eactive/eai/transformer/init_tseaitr06.sql", "/com/eactive/eai/transformer/init_tseaitr07.sql",
|
@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_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)
|
@TestInstance(TestInstance.Lifecycle.PER_CLASS)
|
||||||
class TransformManagerTest {
|
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');
|
||||||
Reference in New Issue
Block a user