今天在编码的时候遇到一个很奇怪的问题,请各位帮个忙。
先描述下问题:
String sql = "select org.id as id,org.name as orgName,t.applable as installAppLable ,count(a.id) as installAppCount from lmam_about a, ldap_org org, lmam_installedapplication t "
+ "where a.org_id = org.id and t.asset_id = a.id and a.org_id = '" + id + "' and t.applable='" + installAppLable + "'";
List list = findBySQL(sql, "rep", ReportAppDTO.class, null);
String count = "";
代码如上,该代码被写在一个dao方法中,当我调用此方法进入时,由于每次传递的参数是不同的,所以通过sql每次查出来的数据都是不一样的,但是,问题来了,执行到findBySQL时,第一次查到的是数据在数据库中查询和list赋值是正确的,但是第二次在进入该方法执行findBySql时,赋值给list的值却是之前第一次的,也就是说后面几次的赋值都无效,请问这种情况各位有遇到过么。
着重说下,由于findBySQL是被封装好的,因此我使用了反编译查询了下里面代码,如下
public <T extends ABaseDTO> List<T> findBySQL(String sql, String alias, Class<T> cls, Object[] params)
{
return getTemplate().findBySQL(sql, alias, cls, params, 2147483647, 0);
}
实际上就是调用了hibernate的template中findBySQL方法,个人觉得是不是后面的数字,即第五个参数写死造成该问题,请各位帮分析下,谢谢
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。