Hibernate 一个实体 对应多个 Table, 查询时导致数据发生 交叉 混乱, 求大神赐教

做统计,每天生成一个统计表在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重新去数据库查询。