Customizing Hibernate Criteria - Adding conditions to a left join

Douglas Ferguson picture Douglas Ferguson · May 14, 2010 · Viewed 10.2k times · Source

I need to be able to do the following:

Select * from Table1 left join Table2 on id1 = id2 AND i1 = ?

Hibernate criteria doesn't allow be to specify the i1 = ? part.

The existing code is using hibernate criteria and it would be a huge refactor to swap out for HQL

Does anybody have any tips how I could implement this differently or any way to override the Hibernate Criteria? I'm not opposed to cracking open hibernate and modifying, but when I began to dig it, there seems to be layers upon layers of abstractions. I never found the the point where SQL is actually generated...

Answer

Douglas Ferguson picture Douglas Ferguson · May 15, 2010

This appears to be what I need...

http://opensource.atlassian.com/projects/hibernate/browse/HHH-2308

i.e.

public Criteria createAlias(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException;

public Criteria createCriteria(String associationPath, String alias, int joinType, Criterion withClause) throws HibernateException;