我添加了列表中的对象,但是存在最重要的问题。如何解决这个问题?我在main方法中的transactionIdList中发出了3个值。
这三个值发送到下面的方法,我想添加所有结果返回。但是,只有两个结果返回bsList,它们处于( 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);
}
}
答案 0 :(得分:2)
唯一的解释是,session.createQuery()
会返回一个List
,而null
不是{{1}},而是为空。
答案 1 :(得分:1)
basvruru很可能在某个时候不是null而是空列表。在这种情况下,没有任何内容添加到bsList。
您可能希望将if子句更新为basvuru == null || basvuru.isEmpty()
,并使用and else。
答案 2 :(得分:0)
List
中的实现值永远不会被覆盖。你必须有其他一些问题。可能basvuru
不是null