【发布时间】:2015-03-10 17:10:14
【问题描述】:
我正在查看我们的一个应用程序中的旧代码,并发现了以下场景。
public <T> List<T> getList(boolean isTrue,String name,String empid)
{
Criteria criteria = session.createCriteria(myType);
criteria.add(Expression.eq("name",name)) ;
if(isTrue&&empid!=null){
criteria.add(Expression.eq("id",empid)) ;
}
List<T> result = criteria.list();
return list;
}
该函数也被调用两次,如下所示。
List<T> employeeList = getList(true,name,empId);
if(employeeList.size()==0)
employeeList = getList(false,name,null);
这种情况背后的原因是有时employeeId 不正确。在这种情况下,我们只需要对员工姓名进行搜索。
我的疑惑。
1) 如果这样执行,我会查询数据库两次吗?
2)如果是,那么有什么办法可以优化它吗?
【问题讨论】:
标签: java hibernate hibernate-criteria