기본 콘텐츠로 건너뛰기

라벨이 ibatis인 게시물 표시

2022 08 26 회사 워크샵

There is no READABLE property named 'XXXX' class 'java.lang.String'

There is no READABLE property named 'XXXX' class 'java.lang.String' 아이바티스를 사용할 때 parameterClass 가 java.lang.String 과 같이 단일 항목일 경우, 다이나믹 조건을 사용할 때 발생할 수 있는 에러 입니다. 예를 들어 단일 파라미터 항목의 이름이 userId일 경우, 〈select id="xxxx" resultMap="xxxx" parameterClass="java.lang.String" > ... 〈dynamic>   〈isNotEmpty property="userId">   where  user_id = #userId#    〈/isNotEmpty> 〈/dynamic> ... 〈/select> 로 할경우 위의 에러가 발생합니다. parameterClass 가 단일 항목일 경우에는 다음과 같이 property 구문을 생략하고 조건을 걸어야 합니다. 주의할 점은 실제 조건절에는 #userId#와 같이 변수명을 입력합니다. 〈select id="xxxx" resultMap="xxxx" parameterClass="java.lang.String" > ... 〈dynamic>   〈isNotEmpty>   where  user_id = #userId#    〈/isNotEmpty> 〈/dynamic> ... 〈/select>

[iBatis]동적 쿼리문 생성

http://blog.paran.com/devtopia/13828096> 실무에서 SQL문을 작성하다 보면 동적인 쿼리문 작성을 작성해야 할 때가 많이 있다. 이때 지겹게 if~else if 문을 통해 아주 지저분한 소스 코드를 생성할 때가 왕왕 있게 마련이다. 이때 ibatis에서는 아주 깔금하게 구현할 수 있는 방법을 제공해 준다. <statement id="dynamicGetAccountList" resultMap="account-result">   select * from account   <dynamic prepend="WHERE">     <isNotNull prepend="AND" property="firstName">       (acc_first_name = #firstName#     <isNotNull prepend="OR" property="lastName">        acc_last_name = #lastName#     </isNotNull>     )     </isNotNull>     <isNotNull prepend="AND" property="emailAddress">       acc_email like #emailAddress#     </isNotNull>     <isGreaterThan prepend="AND" property="id" campareValue="0">       acc_id = #id#     </isGreaterThan> ...