자율 학습/에러 해결
[iBatis] There is no READABLE property named 'XXX' in class 'java.lang.String' 에러 - <isNotEmpty> 동적쿼리 property
60cod
2023. 1. 5. 14:44
보통 parameterClass에 VO가 들어가는데, String과 같은 경우
isNotEmpty 영역에 property를 굳이 입력하지 않아도 자료형을 인식할 수 있다.
property가 있는 이유는 VO 객체 중 property에 입력된 값을 찾아서 해당하는 자료형을 매핑하기 때문인데
parameterClass에서 VO를 쓰지 않았으므로 property가 필요하지 않다.
따라서 property를 지우면 해결된다.
iBatis에서 파라미터가 단일(String, int)일 경우 isNotEmpty, isNotNull 등에 대해 property를 설정하지 않아야 한다.
출처
parameterClass="string" 때문이었음!!!!!!!!!!
<isNotEmpty> 동적 쿼리 쓰는데 자꾸 no READABLE property named 라고 해서 isNotEmpty에 지정해준 property 지웠더니 잘 돌아가길래 위 내용이 맞는 줄 알았다..
그런데 지금 다시 보니 로그가 다 말해주고 있었음.. String 클래스에 해당 프로퍼티가 없다고..
parameterClass를 String이라 해놔서 String 클래스 가서 이 프로퍼티를 찾는데 없으니까 에러가 난 거였다.
그래서 errorCode 프로퍼티로 다시 지정해주고 parameterClass를 errorCode 만들어놓은 클래스로 변경해주었더니 에러 없이 잘 돌아간다. (물론 클래스 이름은 상단에 typeAlias로 만들어주었음.)