From: <ste...@us...> - 2006-02-24 22:12:20
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/engine In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv23075/src/org/hibernate/engine Modified Files: JoinSequence.java Log Message: HHH-1520 : with clause improvements Index: JoinSequence.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/engine/JoinSequence.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- JoinSequence.java 15 Jun 2005 17:18:14 -0000 1.17 +++ JoinSequence.java 24 Feb 2006 22:12:13 -0000 1.18 @@ -125,10 +125,14 @@ } public JoinFragment toJoinFragment(Map enabledFilters, boolean includeExtraJoins) throws MappingException { - return toJoinFragment( enabledFilters, includeExtraJoins, null ); + return toJoinFragment( enabledFilters, includeExtraJoins, null, null ); } - public JoinFragment toJoinFragment(Map enabledFilters, boolean includeExtraJoins, String extraOnClause) throws MappingException { + public JoinFragment toJoinFragment( + Map enabledFilters, + boolean includeExtraJoins, + String withClauseFragment, + String withClauseJoinAlias) throws MappingException { QueryJoinFragment joinFragment = new QueryJoinFragment( factory.getDialect(), useThetaStyle ); if ( rootJoinable != null ) { joinFragment.addCrossJoin( rootJoinable.getTableName(), rootAlias ); @@ -165,8 +169,10 @@ else { condition = on; } - if ( extraOnClause != null ) { - condition += " and " + extraOnClause; + if ( withClauseFragment != null ) { + if ( join.getAlias().equals( withClauseJoinAlias ) ) { + condition += " and " + withClauseFragment; + } } joinFragment.addJoin( join.getJoinable().getTableName(), |