Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在使用hibernate criteria API时,使用限制和排序方式会得到一个奇怪的结果_Java_Hibernate_Hibernate Criteria - Fatal编程技术网

Java 在使用hibernate criteria API时,使用限制和排序方式会得到一个奇怪的结果

Java 在使用hibernate criteria API时,使用限制和排序方式会得到一个奇怪的结果,java,hibernate,hibernate-criteria,Java,Hibernate,Hibernate Criteria,因此,我使用如下标准api编写了hibernate方法 @Override public List<UBSIvrDetail> getIvrDetails(String caseNo, Date tradeDate) { Session session = sessionFactory.openSession(); List<UBSIvrDetail> dataList = null; try { Criteria cr = se

因此,我使用如下标准api编写了hibernate方法

@Override
public List<UBSIvrDetail> getIvrDetails(String caseNo, Date tradeDate) {
    Session session = sessionFactory.openSession();
    List<UBSIvrDetail> dataList = null;

    try {
        Criteria cr = session.createCriteria(UBSIvrDetail.class);
        cr.add(Restrictions.eq("caseNo", caseNo));
        cr.add(Restrictions.eq("tradeDate", tradeDate));
        cr.addOrder(Order.asc("caseNo"));
        cr.addOrder(Order.asc("socSecNo"));
        cr.addOrder(Order.asc("fundId"));

        dataList = cr.list();
    }
    catch (Exception e) {
        throw e;
    }
    finally {
        session.close();
    }

    return dataList;
}
@覆盖
公共列表getIvrDetails(字符串caseNo,Date-tradeDate){
Session Session=sessionFactory.openSession();
List dataList=null;
试一试{
Criteria cr=session.createCriteria(UBSIvrDetail.class);
cr.add(限制条件eq(“案例号”,案例号));
cr.add(Restrictions.eq(“tradeDate”,tradeDate));
cr.addOrder(Order.asc(“案例号”));
cr.addOrder(Order.asc(“socSecNo”));
cr.addOrder(Order.asc(“fundId”);
dataList=cr.list();
}
捕获(例外e){
投掷e;
}
最后{
session.close();
}
返回数据列表;
}
当我使用showsql查看这个数据库的sql并将其放入数据库时,我看到了690个惟一的值,这一切都很好。但当我检查列表时,它返回同一行690次。我是不是遗漏了什么?完全不明白为什么会这样。
提前感谢您的帮助。Namaste

那么你的意思是,当你将列表打印到终端或某处时,你会得到690次相同的数据,或者你正在检查它在做什么并看到相同的对象引用?@Makoto Yes此列表在控制台中打印时会返回690次相同的值(重复相同的值),这是不正确的。然而,如果我将相同的sql等效代码(通过打开ShowSQL属性获得)放入数据库并执行,它将返回690个不同的值