jpa 在多线程中,不能获取到最新的数据

案例:消费kafaka的消息,建立一个阻塞线程,主线程在随时更新数据,在kafaka 的阻塞线程中,只能拿到在服务器(tomcat )启动时候的数据,主线程在更新数据之后,阻塞线程不能获取到更改之后的数据, 始终是服务器启动时的数据,求解!
ps: 是通过jpa 获取的数据,代码如下:


                String sql = "select c from " + clazz.getName() + " c ";
        Set fieldNames = fieldNameValueMap.keySet();
        Iterator iterator = fieldNames.iterator();

        for(int query = 1; query <= fieldNames.size(); ++query) {
            String i = (String)iterator.next();
            if(query == 1) {
                sql = sql + " where c." + i + " = ?" + query;
            } else {
                sql = sql + " and c." + i + " = ?" + query;
            }
        }

        sql = sql + " order by c.updatedTime desc";
        Query var9 = this.em.createQuery(sql);
        iterator = fieldNames.iterator();

        for(int var10 = 1; var10 <= fieldNames.size(); ++var10) {
            String fieldName = (String)iterator.next();
            var9.setParameter(var10, fieldNameValueMap.get(fieldName));
        }

        return var9.getResultList();

http://www.iteye.com/problems/67442