我使用HibernateTemplate.findByCriteria方法來進行一些查詢。現在,我想創建標準SQL的一些限制,如Hibernate的條件加入表
criteria.add(Restrictions.sqlRestriction("name like '%abc%'")
的問題是,我試圖獲取一個對象類中,有一個關於ClassB的的對象,這兩個類有一個字段命名「name」(或「id」或...),所以hibernate引擎使用重複的列名進行連接。如何根據對象類型指定限制?
我試過{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);
你創建類的別名?你可以顯示代碼嗎? – 2012-07-19 14:34:28
我還沒有創建別名。現在我試圖使用它,但對此無能爲力。標準本身(而不是類)創建別名,對吧? – spnbldk 2012-07-19 14:52:54