Programming/JPA ⁄Spring

org.apache.ibatis.reflection.ReflectionException:There is no getter for property named 해결하기

📝 작성 : 2021.06.03  ⏱ 수정 : 
반응형
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 뒤에 조금의 공백이 보입니다.

범인을 찾은 것 같습니다. 쉼표 이후의 사이사이 공백을 없앱니다.

이후 코드를 실행하니 정상적으로 작동합니다 ! 십년 감수했네요.

반응형