반응형
org.apache.ibatis.reflection.ReflectionException: There is no getter for property named ' kb_card_priv_no' in 'class best.gaia.vo.KanbanCardVO'
at org.apache.ibatis.reflection.Reflector.getGetInvoker(Reflector.java:374)
at org.apache.ibatis.reflection.MetaClass.getGetInvoker(MetaClass.java:164)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.getBeanProperty(BeanWrapper.java:162)
at org.apache.ibatis.reflection.wrapper.BeanWrapper.get(BeanWrapper.java:49)
일단 쉽게 답을 드리면 보통의 경우에는 대소문자 때문에 해당 에러가 발생합니다. 대문자 소문자를 정확히 잘 썼는지 확인해보세요.
Mybatis 에서 #{kb_card_priv_no} 를 작성할때는 컬럼값과 다르게 꼭 VO에 변수로 등록된 그대로 작성을 해 주셔야 합니다
저의 경우는 다른 문제였습니다.
저는 multiple select key 를 사용중인데요,
문제의 selectkey 쿼리 입니다.
<selectKey keyProperty="kb_card_no, kb_card_priv_no, kb_col_no" resultType="best.gaia.vo.KanbanCardVO" order="BEFORE">
select *
from(
select max(kb_card_no)+1 as kb_card_no
from kanban_card)a
,
(select card.kb_card_no as kb_card_priv_no, card.kb_col_no
from kanban_card card
left outer join kanban_card next on (card.kb_card_no = next.kb_card_priv_no)
where card.kb_col_no in (select kb_col_no
from kanban_col
where proj_no=1
and kb_col_priv_no is null)
and next.kb_card_no is null)c
</selectKey>
분명 VO와 정확히 맞췄는데 에러가 뜹니다.
그런데 에러를 자세히 보니..
' kb_card 라며 single quotation mark 뒤에 조금의 공백이 보입니다.
범인을 찾은 것 같습니다. 쉼표 이후의 사이사이 공백을 없앱니다.
이후 코드를 실행하니 정상적으로 작동합니다 ! 십년 감수했네요.
반응형