七号房子  

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

 

posted on 2018-08-09 16:09  七号房子  阅读(8543)  评论(0编辑  收藏  举报