기본 콘텐츠로 건너뛰기

글

라벨이 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> ...