Hibernate的查询 标准(Criteria)查询
一个简单例子:
?
注意{alias}是表的名称,这个不用修改,Hibernate在生成SQL时会自动替换!
在源码中可以看到:
public static Criterion sqlRestriction(String sql, Object values[], Type types[]){ return new SQLCriterion(sql, values, types);}public static Criterion sqlRestriction(String sql, Object value, Type type){ return new SQLCriterion(sql, new Object[] { value }, new Type[] { type });}public static Criterion sqlRestriction(String sql){ return new SQLCriterion(sql, ArrayHelper.EMPTY_OBJECT_ARRAY, ArrayHelper.EMPTY_TYPE_ARRAY);}?
也就是说这个方法有三个调用方式,直接写SQL,如果你的SQL中有 ? 作为占位符,那么可设置后面两个参数,第二个参数对应 ? ,第三个是参数字段的类型!
如果有多个 ? ,那么第二和第三个参数就要用数组的形式来传递!