日期:2014-05-19  浏览次数:20714 次

null值
为什么我的service实现类里打印cardItem是null呢?下面是代码:

@Override
public CardItem getCardItemById(int id) {
List<CardItem> list = cardItemDao.getCardItemById(id);
Iterator<CardItem> iter= list.iterator();
CardItem cardItem = null;
if(iter.hasNext()){
cardItem = iter.next();
}
return cardItem;
}
Dao的实现类里这样
@Override
public List<CardItem> getCardItemById(int id) {
return hibernateTemplate.find("from CardItem where id=?", id);
}
小菜鸟,求帮忙!

------解决方案--------------------
if(iter.hasNext()){
cardItem = iter.next();

 LZ调试下看这里的if进来没
------解决方案--------------------
List<CardItem> list = cardItemDao.getCardItemById(id);

if (list != null){
System.out.println("查询记录数为:" + list.size() ) ;
}else{
System.out.println("查询结果为 null") ;
}

加上这个 ,看看打印结果就清楚了

最后在后台看看 
return hibernateTemplate.find("from CardItem where id=?", id);
这个运行时 ,输出的sql是什么 ,然后在查询分析器中运行一下这个sql,看看是否有结果?
------解决方案--------------------
为啥要用迭代呢,直接看list大小,返回list第一个元素不就行了