我正在使用 HibernateTemplate.findByCriteria 方法进行一些查询。现在我想对标准创建一些 SQL 限制,比如
criteria.add(Restrictions.sqlRestriction("name like '%abc%'")
问题是我试图获取一个与 ClassB 对象有关系的对象 Class A 并且两个类都有一个名为“name”(或“id”或...)的字段,因此休眠引擎进行连接在具有重复列名的表上。如何根据对象类型指定限制?
我试过 {classA.name} 和类似的变体,但我得到一个“不明确的列名”异常。
示例(其中条件是 Restrictions.sqlRestriction() 的数组):
final DetachedCriteria criteria = DetachedCriteria.forClass(objectClass);
criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
for(Criterion criterion : criterions) {
criteria.add(criterion);
}
List<T> results = template.findByCriteria(criteria, firstResult, maxResults);