为什么我的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);
}
小菜鸟,求帮忙!

解决方案 »

  1.   

    if(iter.hasNext()){
    cardItem = iter.next();

     LZ调试下看这里的if进来没
      

  2.   

    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,看看是否有结果?
      

  3.   

    为啥要用迭代呢,直接看list大小,返回list第一个元素不就行了
      

  4.   

    五哥说的查询分析器怎么运行啊,刚开始学,不懂,还有下边:
    @Override
    public StringBuilder getCardItem(int id) {
    StringBuilder builder = new StringBuilder();
    CardItem cardItem = getCardItemById(id);
    if(cardItem != null){
    builder.append("({{id:'").append(cardItem.getId())
        这里的cardItem的值为null,是上边那里出错了吗?