Seam框架隐藏的一个bug

阅读更多
我做的是SEAM-GEN生成的项目,在一次批量查询的页面中,大概5000条数据,后台抛出ResultSet is close 的异常。经过调试发现是由于sql语句执行次数太多造成的。
页面的用的是rich:dataTable标签,value对应一个list,sql语句的执行次数为list的大小,即5000条数据就执行5000次sql语句。
后来仔细查找,原因就是在dataTable中数据输出有链接,使用s:link做的链接,去掉s:link就正常了。
以为是自己的代码的问题,于是用seam-gen生成的list页面做测试,发现也是这样。
大家试试,我的结论这是 一个BUG,只有在数据量大的时候才能发现。

另外,在循环中执行查询也是非常影响效率的,做了测试,两种情况对比,需要输出的列都在sql语句中一次处理,能节省起码一倍的时间。

你可能感兴趣的:(dataTable,seam,s:link,seam-gen)