添加对象列表覆盖一些结果

adding object to list overwrite some results

我在列表中添加了对象,但是有覆盖 problem.How 可以解决这个问题吗?我在 main 方法中在 transactionIdList 中发送了 3 个值。 这三个值发送到下面的方法中,我想添加所有结果 return。但是,bsList 只有两个结果 return 处于 ( basvuru != null && !basvuru.isEmpty())) 状态。

     List<ApplicationResult> bsList = new ArrayList();
     Application bsDB = new Application();

     for (int i = 0; i < transactionIdList.size(); i++) {
        List basvuru = session.createQuery("from Application as bsvr where bsvr.transactionId = :var1").setParameter("var1", transactionIdList.get(i)).list();
        if (basvuru == null) {
           ApplicationResult bss = new ApplicationResult();
           bss.setTransactionId(transactionIdList.get(i));
           bss.setBasvuruDurum("no value");
           bsList.add(bss);
        } else if (basvuru != null && !basvuru.isEmpty()){
           ApplicationResult bs = new ApplicationResult();
           bsDB = (Application) basvuru.get(0);
           bs.setTransactionId(bsDB.getTransactionId());
           bs.setBasvuruDurum(bsDB.getDurum());
           bsList.add(bs); 
        }
    }

唯一的解释是 session.createQuery() returns 一个 List 不是 null,而是空的。

很可能basvruru在某个时候不是null而是一个空列表。在这种情况下,没有向 bsList 添加任何内容。

您可能想将 if 子句更新为 basvuru == null || basvuru.isEmpty(),然后只使用 and else。

List 中实现值永远不会被覆盖。你一定有其他问题。可能是 basvuru 不是 null