hiberante基準のcriteria.addとcriteria.equalsの違いは何ですか?
ちょうど例:
25 レコードを返します
criteria.equals(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
2 つのレコードを返します。
criteria.add(Restrictions.eq("templateType", TemplateType.DEFAULT_TEMPLATE));
私がするときhibernate.show_sql
、出力は
- for
criteria.equals
、構文は生成されません - の場合
criteria.add
、this_.template_type=?
注: Hibernate 3 を使用します。
編集:
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();
}