做统计,每天生成一个统计表在DB中,每个表结果当然就一样了,用的Hibernate 配置文件如下
</class>
然后查询的时候代码 如下:
public List<Stat> statQuery(String tableName, String filter)
throws Exception
{
List<Stat> datas = null;
try
{
String sql = "select * from " + tableName + " where 1=1 "
+ filter;
System.out.println(sql + "\n");
Session session = this.getSession();
SQLQuery query = session.createSQLQuery(sql);
query.addEntity(Stat.class);
try
{
datas = query.list();
}
catch (Exception e)
{
e.printStackTrace();
}
}
catch (Exception e)
{
e.printStackTrace();
}
return datas;
}
调用查询:
for (String tb : tableNames)
{
if (!this.statdao.tableIsExists(tb))
{
continue;
}
List<Stat> temp = new ArrayList<Stat>();
temp.clear();
temp = this.statdao.statQuery(tb, filter);
}
每次查出的当tableNames中有多个值时,他会去分别查每个表,但我发现其中会出现数据错乱
如: tableNames 中有 A,B 俩张表
在查询结果中 B表的返回结果中 会出现 A结果的某条数据 替换了 本来在B结果中的一条数据。
求大神指点
卧槽,配置文件没有上去,
补充一下
</class>
卧槽,配置文件没有上去,
补充一下
</class>
我和你一样的问题,最后解决办法是,在 Session session = this.getSession(); 后 进行session.clear(),通过清除session缓存,让session重新去数据库查询。