public class BaseHibernateDAO {
public List search(Class cl,Object condition)
{
List list=null;
try{
list=this.getSession().createCriteria(cl).add(Example.create(condition)).list();
}
catch(Exception e)
{
e.printStackTrace();
}finally
{
this.closeSession();
}
return list;
}
其它方法省略
}public static void main(String[] args) {
Account condition=new Account();
condition.setBalance(100);
BaseHibernateDAO bd=new BaseHibernateDAO();
List list=(List)bd.search(Account.class, condition);
for(int i=0;i<list.size();i++)
{
Account a=(Account)list.get(i);
System.out.println(a.getId());
}
}
上面代码没有错,如果要查询balance>100的要怎么改呢?
中的Example.create(condition)是什么意思啊
不是这样吗?:Criteria c=getSession().createCriteria(Table.class);
条件:
c.add(Restrictions.gt("balance",conditon.balance()));
里面的条件:gt 就是大于的意思。
如果这样写
Criteria c=getSession().createCriteria(Table.class);
c.add(Restrictions.gt("balance",conditon.balance()));
这个方法public List search(Class cl,Object condition)
就没意义了啊