public List<Admins> findByAdminForm(final AdminsForm adminsForm, int firstResult, int resultNumber) {
HibernateTemplate template=getHibernateTemplate();
return (List<Admins>)template.execute(new HibernateCallback(){
public Object doInHibernate(Session arg0)
throws HibernateException, SQLException {
StringBuffer hql=new StringBuffer("select distinct a from Admins a left join fetch a.adminRoles ar left join fetch ar.roles r where 1=1 ");
if(adminsForm.getFname()!=null){
if(adminsForm.getFname().length()>0&adminsForm.getFname().trim().length()>0){
hql.append(" and a.name like :name ");
}
if(adminsForm.getFloginName().length()>0&adminsForm.getFloginName().trim().length()>0){
hql.append(" and a.loginName like :loginName ");
}
if(adminsForm.getFsenrolldate().toString().length()>0&adminsForm.getFsenrolldate().toString().trim().length()>0){
hql.append(" and a.enrolldate >= :senrolldate ");
}
if(adminsForm.getFeenrolldate().toString().length()>0&adminsForm.getFeenrolldate().toString().trim().length()>0){
hql.append(" and a.enrolldate <= :eenrolldate ");
}
}
Query query=arg0.createQuery(hql.toString());
if(adminsForm.getFname()!=null){
if(adminsForm.getFname().length()>0&adminsForm.getFname().trim().length()>0){
query.setParameter("name", "%"+adminsForm.getFname()+"%");
}
if(adminsForm.getFloginName().length()>0&adminsForm.getFloginName().trim().length()>0){
query.setParameter("loginName", ""+adminsForm.getFloginName()+"%");
}
if(adminsForm.getFsenrolldate().toString().length()>0&adminsForm.getFsenrolldate().toString().trim().length()>0){
query.setParameter("senrolldate", adminsForm.getDfsenrolldate());
}
if(adminsForm.getFeenrolldate().toString().length()>0&adminsForm.getFeenrolldate().toString().trim().length()>0){
query.setParameter("eenrolldate", adminsForm.getDfeenrolldate());
}
}
List<Admins> admins=query.list();
return admins;
}
});