IT정리노트

블로그 이미지

Edward. K

메멘토적 기억능력을 소유한 개발자 노트.

[mybatis] There is no getter for property named ..

Programming/IBatis 2019. 9. 11. 09:42
반응형

parameterType="String" 매개변수로 넘겨서 이 값의 여부에 따라 쿼리가 변경되는 로직이 필요한데.
이경우, There is no getter for property named 'xxxx' in 'class 'xxxx'
오류가 발생한다.
어떻게해야할까..?

아래와 같이 dao단에서 호출을 한다고 할때.

List<HashMap<String, Object>> selectXXXXAreaList(String searchTxt);


파라미터 명칭을 다른 이름으로 붙여도 정상동작한다.

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
            WHERE AREA_P_NM LIKE  '%' + #{keyword} + '%'
               OR AREA_NM LIKE '%' + #{keyword} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{keyword} + '%'
        ORDER BY AREA_CODE ASC
    </select>

하지만 검색어 입력여부에 따라  추가적인 if 문(test)이 필요할 경우가 있는데
이 경우 넘어온 파라미터를 임의의 이름으로 사용할 경우 다음과 같은 예외가 발생한다..

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
        <if test="keyword != null and keyword != ''">
            WHERE AREA_P_NM LIKE  '%' + #{keyword} + '%'
               OR AREA_NM LIKE '%' + #{keyword} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{keyword} + '%'
        </if>
        ORDER BY AREA_CODE ASC
    </select>

org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.reflection.ReflectionException: 
There is no getter for property named 'keyword' in 'class java.lang.String'

이때는 명칭을 '_parameter' 로 해야 정상적으로 동작한다.

    <select id="selectXXXXAreaList" parameterType="String" resultType="HashMap">
        /* XXXXMapper.selectXXXXAreaList */
        SELECT AREA_CODE, AREA_P_NM+' '+AREA_NM as AREA_F_NAME
        FROM T_XXXX_AREA
        <if test="_parameter != null and _parameter != ''">
            WHERE AREA_P_NM LIKE  '%' + #{_parameter} + '%'
               OR AREA_NM LIKE '%' + #{_parameter} + '%'
               OR AREA_P_NM+' '+AREA_NM  LIKE '%' + #{_parameter} + '%'
        </if>
        ORDER BY AREA_CODE ASC
    </select>

 

2021-05-17 추가.. 

https://ofstack.com/Java/25565/common-problems-and-solutions-when-mybatis-parameter-type-is-string.html

더보기

일반적으로 우리는 이런 방식으로 작성하는데, 
이는 다른 유형에 적용되지만 String의 경우 다음 예외가 발생합니다.
  There is no getter for property named 'xxxxx' in 'class java.lang.String'

'class java.lang.String'에 'type'이라는 속성에 대한 getter가 없습니다.

MyBatis는 매개 변수가 String이면 인터페이스 메소드의 매개 변수가 무엇이든 상관없이 ES21en.xml의 참조를 인식하려면 _parameter로 변경해야합니다.

다른 동적 SQL 태그는 문자열을 처리 할 때 동일한 문제가 있습니다.

반응형
Posted by Edward. K
블로그 이미지

메멘토적 기억능력을 소유한 개발자 노트.

by Edward. K

공지사항

    최근...

  • 포스트
  • 댓글
  • 트랙백
  • 더 보기

태그

  • android
  • 가상화폐무료
  • tomcat
  • STS
  • egov
  • 플래시 게임
  • 색상코드표
  • Jboss
  • Graphic
  • netbeans
  • 사업 이야기
  • 캡쳐툴
  • rocketdock
  • 개한민국
  • EditPlus
  • eclipse plugin
  • 미네르바
  • flex
  • Flash Player
  • Eclipse
  • 전자정부프레임워크
  • 컴퓨터 관리
  • ERwin
  • toad
  • 중독성게임
  • 이미지 편집
  • 이클립스
  • EkNote
  • sqlgate
  • iBATIS

글 보관함

«   2025/06   »
일 월 화 수 목 금 토
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30

링크

카테고리

분류 전체보기 (792)
행운이와함께 (1)
EkNote Project (18)
ARIS (0)
Android (2)
LINK (39)
UML (9)
Programming (154)
Cobol (0)
ASP (0)
CSS (5)
C_C++ (2)
IBatis (2)
JSP (3)
JAVA (76)
JavaScript (44)
PHP (2)
Utility (76)
Protable (3)
MobileProgram (4)
SKT (0)
KTF (0)
LGT (0)
자료들 (4)
DB (82)
mongoDB (0)
MySQL (8)
Oracle (61)
MSSQL (4)
Graphic (8)
Flash (3)
PhotoShop (3)
SourceFactory (4)
Collection (73)
작가의기막힌상상력 (14)
미소를찾아보는공간 (44)
내심장은작동중일까 (6)
멀더와스컬리의노트 (3)
이건어디에사용할까 (6)
Edward (275)
나만 알기엔 아까워 (100)
기억하기 위한 기록 (123)
시선이 머무는 공간 (50)
숨기고 싶은 이야기 (2)

카운터

Total
Today
Yesterday
방명록 : 관리자 : 글쓰기
Edward. K's Blog is powered by daumkakao
Skin info material T Mark3 by 뭐하라
favicon

IT정리노트

메멘토적 기억능력을 소유한 개발자 노트.

  • 태그
  • 링크 추가
  • 방명록

관리자 메뉴

  • 관리자 모드
  • 글쓰기
  • 분류 전체보기 (792)
    • 행운이와함께 (1)
    • EkNote Project (18)
    • ARIS (0)
    • Android (2)
    • LINK (39)
    • UML (9)
    • Programming (154)
      • Cobol (0)
      • ASP (0)
      • CSS (5)
      • C_C++ (2)
      • IBatis (2)
      • JSP (3)
      • JAVA (76)
      • JavaScript (44)
      • PHP (2)
    • Utility (76)
      • Protable (3)
    • MobileProgram (4)
      • SKT (0)
      • KTF (0)
      • LGT (0)
      • 자료들 (4)
    • DB (82)
      • mongoDB (0)
      • MySQL (8)
      • Oracle (61)
      • MSSQL (4)
    • Graphic (8)
      • Flash (3)
      • PhotoShop (3)
    • SourceFactory (4)
    • Collection (73)
      • 작가의기막힌상상력 (14)
      • 미소를찾아보는공간 (44)
      • 내심장은작동중일까 (6)
      • 멀더와스컬리의노트 (3)
      • 이건어디에사용할까 (6)
    • Edward (275)
      • 나만 알기엔 아까워 (100)
      • 기억하기 위한 기록 (123)
      • 시선이 머무는 공간 (50)
      • 숨기고 싶은 이야기 (2)

카테고리

PC화면 보기 티스토리 Daum

티스토리툴바