专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > 高性能WEB开发

关于spring集成hibernate获取session轮询取值异常

发布时间:2010-05-20 14:01:29 文章来源:www.iduyao.cn 采编人员:星星草
关于spring集成hibernate获取session轮询取值错误
public class BaseDaoImpl<T, PK extends Serializable> extends
        HibernateDaoSupport implements BaseDao<T, PK> {
public Class getEntityClass() {
        return entityClass;
    }

    public void setEntityClass(Class entityClass) {
        this.entityClass = entityClass;
    }

    // 获得泛型的实体对象
    public BaseDaoImpl() {
        Type type = getClass().getGenericSuperclass();
        if (type instanceof ParameterizedType) {
            Type[] parameterizedType = ((ParameterizedType) type)
                    .getActualTypeArguments();
            this.entityClass = (Class<T>) parameterizedType[0];
            
        }
    }

    // 重写父类的方法
    @Resource(name = "sessionFactory")
    public void setBaseDaoSessionFactory(SessionFactory sessionFactory) {
        super.setSessionFactory(sessionFactory);
    }
public synchronized T get(Object... cList) {
        Criteria criteria =getSession().createCriteria(entityClass);
        synchronized(criteria){
            synchronized(cList){
                for(Object c : cList) {
                    criteria.add((Criterion)c);
                }
                List resultList = criteria.list();
                if(resultList.size()==0) {
                    return null;
                } else {
                    return (T)resultList.get(0);
                }
            }
        }
    }
}
某方法调用
 while(true){
                  A a = get(A.class,Restrictions.eq("id", "123"));
                  B b = get(B.class,Restrictions.eq("id", "456"));
                  if(a==null) {
                      System.out.println("A对象为空.");
                  }
                  
              }
控制台不定时的打印出"A对象为空.",但是这里查询a对象的条件是正常的,应该每次都能查询到数据的。感觉像是 criteria.add((Criterion)c);这里当时执行查询a对象的时候放入了id=456。希望高手解答下原因及解决参考。感谢
------解决思路----------------------
你把hibernate的查询语句打印出来,看看显示“A对象为空”的时候查询语句有问题没
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: