Anyway

[JAVA] Enum Type XML에서 if문 작성하기 본문

Java

[JAVA] Enum Type XML에서 if문 작성하기

dyana 2024. 11. 5. 13:25

🫨기존 코드

클라이언트로부터 받는 branch의 값이 A면 t_a_raw 테이블을 조회하고

B면 t_b_raw 테이블을 조회하는 것이 목표

참고로 branch 필드의 type은 ENUM Type이다.

SELECT 
...
...
...
FROM
    <if test="branch == 'A'">
        t_a_raw
    </if>
    <if test="branch == 'B'">
        t_b_raw
    </if>

이렇게도 작성해보고

SELECT 
...
...
...
FROM
    <if test="branch.valueOf('A')">
        t_a_raw
    </if>
    <if test="branch.valueOf('B')">
        t_b_raw
    </if>

저렇게도 작성해보고 equals도 써보고 다 해봤는데 

 

먼저 branch.valueOf('A')과 같이 작성하게 되면

➡️ if문이 모두 참으로 동작되어 a테이블도 b테이블도 나와버리게 됨. 

조건문의 동작을 전혀 하지 않고 있음. 

 

이후 branch == 'A'와 같이 작성한 경우

➡️ org.apache.ibatis.exceptions.PersistenceException: ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: com.ddimtech.llmops.common.DataBranch and java.lang.String ### Cause: java.lang.IllegalArgumentException: invalid comparison: com.ddimtech.llmops.common.DataBranch and java.lang.Strin

이러한 에러가 발생.

 

결국 해결

...
...
FROM
    <if test="branch.name() == 'A'">
        t_a_raw
    </if>
    <if test="branch.name() == 'A'">
        t_b_raw
    </if>

 

 

.name()으로 꺼내서 비교하니 잘 먹었다. 

휴 오늘의 삽질 끝...!