今天使用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} 但是我试了这种情况下使用这个也是没有效果。