今天使用mysql 的sql查詢語句的時候(我是用的是ssm框架)
下面是我的查詢語句,條件是根據business_id 和card_status 兩個參數獲取值
select * from tb_addCard where business_id = #{businessId,jdbcType=INTEGER} and card_status = #{cardStatus ,jdbcType=INTEGER}
在自己的sql測試里面完全是沒有問題的,但是項目運行起來用postman測試時就報錯,然后采用log4j打印出來也是報錯:
will not be managed by Spring
這個是其中的一個錯誤信息,配置文件啥的肯定是沒有問題的,網上是說加@Transactional注解,或者是aop配置出錯
但是自己別的都可以測試出來結果,絕對不是配置問題。這個我們就不說了。
There is no getter for xxx
這個報錯的時候,我們往往不會出現我們的實體類中沒有生成get,set方法,畢竟我們采用的是自動生成工具生成的,但是就是報這個錯誤了,很納悶,網上找了很多但都是找不到自己需要的,后來我就把sql語句修改成了
select * from tb_addCard where business_id = #{0} and card_status = #{1}
運行起來就正常了,這其中的原理我覺得應該相當於一個角標的提示,現在我也沒完全明白為啥,知道的朋友麻煩告知。
網上也有說把#{xxx}修改為 #{_parameter} 但是我試了這種情況下使用這個也是沒有效果。