|
From: <one...@us...> - 2002-11-25 02:21:12
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader
In directory sc8-pr-cvs1:/tmp/cvs-serv25122/cirrus/hibernate/loader
Modified Files:
AnsiOuterJoinGenerator.java OracleOuterJoinGenerator.java
OuterJoinGenerator.java
Log Message:
use OuterJoinGenerator for normalized table mappings
Index: AnsiOuterJoinGenerator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/AnsiOuterJoinGenerator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** AnsiOuterJoinGenerator.java 5 Nov 2002 03:44:01 -0000 1.4
--- AnsiOuterJoinGenerator.java 25 Nov 2002 02:21:09 -0000 1.5
***************
*** 15,40 ****
}
! /**
! * Generate a <tt>LEFT OUTER JOIN</tt> clause to the table of the entity class
! */
! protected final String appendOuterJoinStringAfterFrom(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc) {
! StringBuffer on = new StringBuffer(20).append("ON ");
! String[] keyNames = assoc.subpersister.getIdentifierColumnNames();
//TODO: refactor onto Loadable .. this is repeated in two other places
! for ( int j=0; j<assoc.foreignKeyColumns.length; j++) {
! on.append( assoc.foreignKeyColumns[j] )
.append('=')
! .append(assoc.subalias)
.append('.')
! .append( keyNames[j] );
! if ( j<assoc.foreignKeyColumns.length-1 ) on.append(" and ");
}
- buf.append(" LEFT OUTER JOIN ")
- .append( assoc.subpersister.fromClauseFragment( assoc.subalias, on.toString() ) );
return buf.toString();
}
! protected final String appendOuterJoinStringAfterWhere(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc) {
return EMPTY_STRING;
}
--- 15,38 ----
}
! public final String appendOuterJoinStringAfterFrom(StringBuffer buf, String tableName, String alias, String[] fkColumns, String[] pkColumns) {
! buf.append(" LEFT OUTER JOIN ")
! .append(tableName)
! .append(' ')
! .append(alias)
! .append(" ON ");
//TODO: refactor onto Loadable .. this is repeated in two other places
! for ( int j=0; j<fkColumns.length; j++) {
! buf.append( fkColumns[j] )
.append('=')
! .append(alias)
.append('.')
! .append( pkColumns[j] );
! if ( j<fkColumns.length-1 ) buf.append(" and ");
}
return buf.toString();
}
! public final String appendOuterJoinStringAfterWhere(StringBuffer buf, String alias, String[] fkColumns, String[] pkColumns) {
return EMPTY_STRING;
}
Index: OracleOuterJoinGenerator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/OracleOuterJoinGenerator.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OracleOuterJoinGenerator.java 4 Nov 2002 08:10:50 -0000 1.4
--- OracleOuterJoinGenerator.java 25 Nov 2002 02:21:09 -0000 1.5
***************
*** 13,41 ****
}
! /**
! * Generate a <tt>LEFT OUTER JOIN</tt> clause to the table of the entity class
! */
! protected final String appendOuterJoinStringAfterFrom(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc) {
buf.append(", ")
! .append( assoc.subpersister.getTableName() )
.append(' ')
! .append(assoc.subalias );
return buf.toString();
}
! protected final String appendOuterJoinStringAfterWhere(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc) {
! String[] keyNames = assoc.subpersister.getIdentifierColumnNames();
! for ( int j=0; j<assoc.foreignKeyColumns.length; j++) {
buf.append(" AND ")
! .append( assoc.foreignKeyColumns[j] )
.append('=')
! .append(assoc.subalias)
.append('.')
! .append( keyNames[j] )
.append("(+)");
}
return buf.toString();
}
}
--- 13,38 ----
}
! public final String appendOuterJoinStringAfterFrom(StringBuffer buf, String tableName, String alias, String[] fkColumns, String[] pkColumns) {
buf.append(", ")
! .append(tableName)
.append(' ')
! .append(alias);
return buf.toString();
}
! public final String appendOuterJoinStringAfterWhere(StringBuffer buf, String alias, String[] fkColumns, String[] pkColumns) {
! for ( int j=0; j<fkColumns.length; j++) {
buf.append(" AND ")
! .append( fkColumns[j] )
.append('=')
! .append(alias)
.append('.')
! .append( pkColumns[j] )
.append("(+)");
}
return buf.toString();
}
+
}
Index: OuterJoinGenerator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/OuterJoinGenerator.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** OuterJoinGenerator.java 5 Nov 2002 03:44:01 -0000 1.3
--- OuterJoinGenerator.java 25 Nov 2002 02:21:09 -0000 1.4
***************
*** 19,23 ****
StringBuffer buf = new StringBuffer(50);
Iterator iter = associations.iterator();
! while ( iter.hasNext() ) appendOuterJoinStringAfterFrom(buf, (OuterJoinLoader.OuterJoinableAssociation) iter.next());
return buf.toString();
}
--- 19,33 ----
StringBuffer buf = new StringBuffer(50);
Iterator iter = associations.iterator();
! while ( iter.hasNext() ) {
! OuterJoinLoader.OuterJoinableAssociation oj = (OuterJoinLoader.OuterJoinableAssociation) iter.next();
! appendOuterJoinStringAfterFrom(
! buf,
! oj.subpersister.getTableName(),
! oj.subalias,
! oj.foreignKeyColumns,
! oj.subpersister.getIdentifierColumnNames()
! );
! buf.append( oj.subpersister.outerJoinsAfterFrom(oj.subalias) );
! }
return buf.toString();
}
***************
*** 30,34 ****
StringBuffer buf = new StringBuffer(50);
Iterator iter = associations.iterator();
! while ( iter.hasNext() ) appendOuterJoinStringAfterWhere(buf, (OuterJoinLoader.OuterJoinableAssociation) iter.next());
return buf.toString();
}
--- 40,53 ----
StringBuffer buf = new StringBuffer(50);
Iterator iter = associations.iterator();
! while ( iter.hasNext() ) {
! OuterJoinLoader.OuterJoinableAssociation oj = (OuterJoinLoader.OuterJoinableAssociation) iter.next();
! appendOuterJoinStringAfterWhere(
! buf,
! oj.subalias,
! oj.foreignKeyColumns,
! oj.subpersister.getIdentifierColumnNames()
! );
! buf.append( oj.subpersister.outerJoinsAfterWhere(oj.subalias) );
! }
return buf.toString();
}
***************
*** 38,42 ****
* To be inserted after the FROM clause.
*/
! protected abstract String appendOuterJoinStringAfterFrom(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc);
/**
--- 57,61 ----
* To be inserted after the FROM clause.
*/
! public abstract String appendOuterJoinStringAfterFrom(StringBuffer buf, String tableName, String alias, String[] fkColumns, String[] pkColumns);
/**
***************
*** 44,48 ****
* To be inserted after the FROM clause.
*/
! protected abstract String appendOuterJoinStringAfterWhere(StringBuffer buf, OuterJoinLoader.OuterJoinableAssociation assoc);
}
--- 63,67 ----
* To be inserted after the FROM clause.
*/
! public abstract String appendOuterJoinStringAfterWhere(StringBuffer buf, String alias, String[] fkColumns, String[] pkColumns);
}
|