what is difference between criteria.add and criteria.equals in hiberante criteria?
just example:
returns 25 records
criteria.equals(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
returns 2 records:
criteria.add(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
when I do hibernate.show_sql
, then output is
- for
criteria.equals
, no syntax generated - for
criteria.add
, this_.template_type=?
Note: Using Hibernate 3.
Edit:
try{
List<Form> forms=Collections.emptyList();
Criteria normCriteria=session.createCriteria(NormMaster.class);
normCriteria.add(Restrictions.eq("id",normId));
normCriteria.setProjection(Projections.property("libraryId"));
List<Long> libNormIds=normCriteria.list();
if(libNormIds!=null && libNormIds.size()>0)
{
Criteria criteria=session.createCriteria(Form.class);
criteria.add(Restrictions.in("normId", libNormIds));
criteria.equals(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
//criteria.add(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
criteria.setFetchMode("formControlMaps", FetchMode.JOIN);
criteria.setFetchMode("formControlMaps.data", FetchMode.JOIN);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
forms=criteria.list();
}
return forms;
}
catch (Exception e) {
e.printStackTrace();
}