Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql
In directory sc8-pr-cvs1:/tmp/cvs-serv8308/sf/hibernate/sql
Modified Files:
QueryJoinFragment.java QuerySelect.java
Log Message:
outer join support in HQL
Index: QueryJoinFragment.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/QueryJoinFragment.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** QueryJoinFragment.java 23 Feb 2003 07:22:11 -0000 1.1
--- QueryJoinFragment.java 1 Mar 2003 06:14:10 -0000 1.2
***************
*** 2,5 ****
--- 2,6 ----
package net.sf.hibernate.sql;
+ import net.sf.hibernate.dialect.Dialect;
import net.sf.hibernate.util.StringHelper;
***************
*** 8,17 ****
private StringBuffer afterFrom = new StringBuffer();
private StringBuffer afterWhere = new StringBuffer();
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType) {
!
! addCrossJoin(tableName, alias);
! addCondition(alias, fkColumns, pkColumns);
!
}
--- 9,29 ----
private StringBuffer afterFrom = new StringBuffer();
private StringBuffer afterWhere = new StringBuffer();
+ private Dialect dialect;
+
+ public QueryJoinFragment(Dialect dialect) {
+ this.dialect = dialect;
+ }
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, int joinType) {
! if (joinType!=INNER_JOIN) {
! //TODO: get right impl for dialect
! JoinFragment jf = dialect.createOuterJoinFragment();
! jf.addJoin(tableName, alias, fkColumns, pkColumns, joinType);
! addFragment(jf);
! }
! else {
! addCrossJoin(tableName, alias);
! addCondition(alias, fkColumns, pkColumns);
! }
}
***************
*** 30,34 ****
public JoinFragment copy() {
! QueryJoinFragment copy = new QueryJoinFragment();
copy.afterFrom = new StringBuffer( afterFrom.toString() );
copy.afterWhere = new StringBuffer( afterWhere.toString() );
--- 42,46 ----
public JoinFragment copy() {
! QueryJoinFragment copy = new QueryJoinFragment(dialect);
copy.afterFrom = new StringBuffer( afterFrom.toString() );
copy.afterWhere = new StringBuffer( afterWhere.toString() );
Index: QuerySelect.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/QuerySelect.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** QuerySelect.java 28 Feb 2003 07:01:28 -0000 1.1
--- QuerySelect.java 1 Mar 2003 06:14:10 -0000 1.2
***************
*** 4,11 ****
import java.util.Iterator;
import net.sf.hibernate.util.StringHelper;
public class QuerySelect {
! private JoinFragment joins = new QueryJoinFragment();
private StringBuffer select = new StringBuffer();
private StringBuffer where = new StringBuffer();
--- 4,12 ----
import java.util.Iterator;
+ import net.sf.hibernate.dialect.Dialect;
import net.sf.hibernate.util.StringHelper;
public class QuerySelect {
! private JoinFragment joins;
private StringBuffer select = new StringBuffer();
private StringBuffer where = new StringBuffer();
***************
*** 42,45 ****
--- 43,50 ----
dontSpace.add(StringHelper.OPEN_PAREN); //for MySQL
dontSpace.add(StringHelper.CLOSE_PAREN);
+ }
+
+ public QuerySelect(Dialect dialect) {
+ joins = new QueryJoinFragment(dialect);
}
|