Could not set property ‘xxx‘ of ‘class ‘xxx‘ with value ‘xxx‘,Cause: java.lang.IllegalArgumentExcept
?這個是我要運行的代碼
?
?這個是這段代碼報的錯。
Cause: org.apache.ibatis.reflection.ReflectionException:
Could not set property 'd' of 'class com.mypro.entity.build'
with value 'drom{houseNb=418, floor=4, direction='south', buid=4}'
Cause: java.lang.IllegalArgumentException: argument type mismatch
錯誤的意思是,無法給d設置屬性,因為參數類型不匹配。
我是對照著老師的視頻來寫,因為是先看完視頻再去寫,導致一下沒轉過彎來。
這個是我要用的注釋型查詢,注意看其中的 javaType=drom.class
@Select("select * from build")@Results(id = "buildMap",value = {@Result(id = true,property = "buid",column = "buid",javaType = Integer.class),@Result(property = "d",column = "buid",javaType = drom.class,many=@Many(select = "com.mypro.mapper.dromMapper.querySingle",fetchType = FetchType.EAGER))})public List<build> queryAll();這樣寫其實沒錯,但是我要查詢的是多個數據,而且我在build類中將d設置的是一個集合型
這因為我設置的是集合型,所以 javaType=drom.class是一個錯誤的寫法
應該寫成javaType=List.class,寫成集合型。所以會顯示參數類型不匹配的報錯。
其實這種類型不匹配的錯誤還會有其他報錯,這個報錯是基于最上面所運行的代碼不一致。
這是另外一個代碼,我是在上面代碼運行錯誤的情況下,嘗試運行其他查詢
?這是報的錯
Cause: org.apache.ibatis.executor.ExecutorException:
Statement returned more than one row, where no more than one was expected.
報錯的內容為,語句返回了多行,其中不應該超過一行
然后我也在疑惑,為什么我build類中設置的是List數組,我也想要它返回多行數據給我,但是它還報錯。
答案就是上面的內容。
我已經醉了~~~~,已經是第二次犯這個錯了,希望沒下次了!!!
希望各位正在學習mybatis的同學們,不管是跟著老師視頻來寫的還是自己琢磨的,都希望大家更加細心!
?
總結
以上是生活随笔為你收集整理的Could not set property ‘xxx‘ of ‘class ‘xxx‘ with value ‘xxx‘,Cause: java.lang.IllegalArgumentExcept的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Unity SteamVR获取手柄按钮触
- 下一篇: 清华大学的同学,究竟有多难?