【问题标题】:Hibernet Select Query empty constraintHibernate Select Query 空约束
【发布时间】:2013-12-05 05:49:59
【问题描述】:

我正在使用休眠查询从表中选择一组数据。选择查询的结果集存储在 List 中。查询正在正确执行。即使查询返回一个空选择,我如何检查列表是否为空..根据事务执行的条件。

如何查看列表是否为空?

public String getData(String ID){
    Transaction transaction=null;
    Session session=HibernateUtil.getSessionFactory().openSession();
    List<MyClass> myList=null;
    try{
        transaction=session.beginTransaction();
        myList=session.createQuery("from table as t where t.ID=:ID")
                .setString("ID",ID).list();
                transaction.commit();
    }catch(RuntimeException e){
        if(transaction!=null){
            log.error(e);
            transaction.rollback();
        }
    }finally{
        session.flush();
        session.close();
    }

}

【问题讨论】:

    标签: java mysql hibernate hql


    【解决方案1】:

    如何查看列表是否为空?

    使用isEmpty 方法。

    if(myList.isEmpty()){
    // List is empty.
    }
    

    【讨论】:

      【解决方案2】:

      有一个函数来检查列表是否包含记录,称为isEmpty()

      myList.isEmpty(); //return booleans based on your myList.
      

      看看这个doc

      【讨论】:

        【解决方案3】:
        `Based on the condition the transaction get executed.`
        

        如果您的交易成功执行,那么只有您将列表设为空,否则您的列表将为 null,因为您已将其初始化为 null

        所以如果事务完成了那么你可以使用isEmpty()或者list.size()方法来检查大小

        List<MyClass> myList=null; **// initialised as null**
        try{
            transaction=session.beginTransaction();
            myList=session.createQuery("from table as t where t.ID=:ID")
                    .setString("ID",ID).list();
                    transaction.commit(); **// if any exception comes myList will be null**
        }catch(RuntimeException e){
            if(transaction!=null){
                log.error(e);
                transaction.rollback();
            }
        }finally{
            session.flush();
            session.close();
        }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-10-03
          • 2015-06-22
          • 2015-11-16
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-17
          相关资源
          最近更新 更多