Hibernate Select Query空约束

时间:2013-12-05 05:49:59

标签: java mysql hibernate hql

使用hibernate查询从表中选择数据组。选择查询的结果集存储在List中。查询正确执行。即使查询返回空选择,我如何检查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();
    }

}

3 个答案:

答案 0 :(得分:1)

  

如何检查列表是否为空?

使用isEmpty方法。

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

答案 1 :(得分:1)

有一个函数可以检查列表是否包含名为isEmpty()

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

看看这个doc

答案 2 :(得分:1)

`Based on the condition the transaction get executed.`

如果您的事务成功执行,那么只有您将List列为空,否则您的列表将为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();
}