Post
KO

Mybatis 빈값 비교시 잘안될때 이유는 이것 때문이다.

parameterType=”string”

으로하고

이게 안먹었는데 뭐 ''와 ""를 변경해서 하라는 둥 여러 이야기가 있었다. 근데 다안되어서 결국엔 아래와 같은 이유를 찾고 parameterType을 Map으로 해서 넘겨서 해결했다. 출처 : <http://seongsland.tistory.com/131> - ibatis부터 있던 고질적 버그 1. ${test}  <-- parameterType을 String으로 주고 java단에서 파라미터를 String으로 넘겨 줄 경우 에러 발생함.2. #{test}는 잘됨.3. int, map, VO등은 또 잘됨.. String만 안됨..4. mybatis로 넘어왔는데도.. 고쳐지지 않았음.. String이 원래 그렇게 쓰면 안되는 거면.. int는 왜되냥!!- mybatis 버그1. map 형식으로 값을 String형식으로 1자리값(A)을 넣어서 보냄..2. 다이나믹 쿼리에서 test="tttt = 'A'" 식으로 처리함.3. 처리가 안됨... A를 NumberFormat 으로 변환할수 없다는 Exception만 발생함.4. String인데 강제로 char나 Integer형으로 파싱하려한다고 생각함.5. 다이나믹 쿼리에서 test="ttt = 'A' + ''" 식으로 처리함. 잘됨.6. test="" 표현식 안에 들어갈수 있는 ognl 표현식을 보고 +'' 방식을 찾아냄.. 아래는 표현식 전부    "," ...    "=" ...    "?" ...    "||" ...    "or" ...    "&&" ...    "and" ...    "|" ...    "bor" ...    "^" ...    "xor" ...    "&" ...    "band" ...    "==" ...    "eq" ...    "!=" ...    "neq" ...    "<" ...    "lt" ...    ">" ...    "gt" ...    "<=" ...    "lte" ...    ">=" ...    "gte" ...    "in" ...    "not" ...    "<<" ...    "shl" ...    ">>" ...    "shr" ...    ">>>" ...    "ushr" ...    "+" ...    "-" ...    "*" ...    "/" ...    "%" ...    "instanceof" ...    "." ...    "(" ...    "[" ... <-- [] 는 배열이나 하위 속성의 값을 불러올때 쓰이는듯.. ['t']- mybatis 에 mysql 연동시 버그 (원인은 밝히지 못했음..)1. 가끔 컬럼들을 대문자, 소문자 중복해서 가져오는 경향이 있음.. (t1,t2,t3,T1,T2,T3 식..)2. 가끔 컬럼들을 대문자, 소문자 섞어서 가져오는 경향이 있음.. (t1,T2, t3 식..)  - view 를 이용해서 여러 테이블을 조인했을때 이경우가 발생했음..  - jakarta project에서 Map을 확장해서 만든 라이브러리가 있는데 이것을 사용시 소문자로 일괄변경됨.  - ibatis때에도 비슷한 문제 때문에 ibatis에서 put 하는 부분을 디코딩해서 따로 소스에 포함시켜서 처리한적이 있음.3. 가끔 컬럼의 매핑을 엉뚱하게 하는 경향이 있음..  - column t1 이 L1010 이었는데 이것을 String으로 가져오지 못함.  - mysql 쿼리에서 convert(t1 as char) 로 변환하니 String으로 제대로 처리됨.현재 구글에서 mybatis 에 대한 이슈가 많이 올라오고 있어서 뜯어 고치느라 분주하다고 들었음..버젼업이 되면 안정적이 될것이라 생각함. 아직은 불안한 점이 많아 보임..
This article is licensed under CC BY 4.0 by the author.