|
From: <one...@us...> - 2002-11-25 02:21:13
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister
In directory sc8-pr-cvs1:/tmp/cvs-serv25122/cirrus/hibernate/persister
Modified Files:
EntityPersister.java Loadable.java
MultiTableEntityPersister.java
Log Message:
use OuterJoinGenerator for normalized table mappings
Index: EntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/EntityPersister.java,v
retrieving revision 1.39
retrieving revision 1.40
diff -C2 -d -r1.39 -r1.40
*** EntityPersister.java 24 Nov 2002 15:45:50 -0000 1.39
--- EntityPersister.java 25 Nov 2002 02:21:09 -0000 1.40
***************
*** 964,969 ****
}
! public String fromClauseFragment(String name, String on) {
! return fromClauseFragment(name) + ' ' + on;
}
--- 964,973 ----
}
! public String outerJoinsAfterFrom(String name) {
! return "";
! }
!
! public String outerJoinsAfterWhere(String name) {
! return "";
}
Index: Loadable.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/Loadable.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** Loadable.java 5 Nov 2002 03:44:01 -0000 1.11
--- Loadable.java 25 Nov 2002 02:21:10 -0000 1.12
***************
*** 97,103 ****
public String fromClauseFragment(String name);
/**
! * Get the from clause fragment, given a query alias and an ON clause
*/
! public String fromClauseFragment(String name, String on);
}
--- 97,107 ----
public String fromClauseFragment(String name);
/**
! * Get any the outer join SQL fragments that appear in the <tt>FROM</tt> clause
*/
! public String outerJoinsAfterFrom(String name);
! /**
! * Get any the outer join SQL fragments that appear in the <tt>WHERE</tt> clause
! */
! public String outerJoinsAfterWhere(String name);
}
Index: MultiTableEntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/persister/MultiTableEntityPersister.java,v
retrieving revision 1.34
retrieving revision 1.35
diff -C2 -d -r1.34 -r1.35
*** MultiTableEntityPersister.java 24 Nov 2002 15:45:50 -0000 1.34
--- MultiTableEntityPersister.java 25 Nov 2002 02:21:10 -0000 1.35
***************
*** 8,11 ****
--- 8,12 ----
import cirrus.hibernate.id.NativeGenerator;
import cirrus.hibernate.loader.EntityLoader;
+ import cirrus.hibernate.loader.OuterJoinGenerator;
import cirrus.hibernate.loader.UniqueEntityLoader;
import cirrus.hibernate.map.Column;
***************
*** 1173,1205 ****
public String fromClauseFragment(String name) {
- return fromClauseFragment(name, "");
- }
-
- public String fromClauseFragment(String name, String on) {
- String[] tables = subclassTableNameClosure;
StringBuffer buf = new StringBuffer(100);
! buf.append( tables[0] )
.append(' ')
.append(name)
! .append(' ')
! .append(on);
! for ( int i=1; i<tables.length; i++ ) {
! buf.append(" left outer join ")
! .append( tables[i] )
! .append(' ')
! .append(name)
! .append(i)
! .append(" on ");
! for ( int j=0; j<identifierColumnNames.length; j++ ) {
! buf.append(name)
! .append('.')
! .append( identifierColumnNames[j] )
! .append('=')
! .append(name)
! .append(i)
! .append('.')
! .append( subclassTableKeyColumns[i][j] );
! if (j!=identifierColumnNames.length-1) buf.append(" and ");
! }
}
return buf.toString();
--- 1174,1210 ----
public String fromClauseFragment(String name) {
StringBuffer buf = new StringBuffer(100);
! buf.append( subclassTableNameClosure[0] )
.append(' ')
.append(name)
! .append( outerJoinsAfterFrom(name) );
! return buf.toString();
! }
!
! public String outerJoinsAfterFrom(String name) {
! StringBuffer buf = new StringBuffer(20);
! OuterJoinGenerator ojg = factory.getDialect().getOuterJoinGenerator();
! for ( int i=1; i<subclassTableNameClosure.length; i++ ) {
! ojg.appendOuterJoinStringAfterFrom(
! buf,
! subclassTableNameClosure[i],
! name+i,
! StringHelper.prefix(identifierColumnNames, name + '.'),
! subclassTableKeyColumns[i]
! );
! }
! return buf.toString();
! }
!
! public String outerJoinsAfterWhere(String name) {
! StringBuffer buf = new StringBuffer(20);
! OuterJoinGenerator ojg = factory.getDialect().getOuterJoinGenerator();
! for ( int i=1; i<subclassTableNameClosure.length; i++ ) {
! ojg.appendOuterJoinStringAfterWhere(
! buf,
! name+i,
! StringHelper.prefix(identifierColumnNames, name + '.'),
! subclassTableKeyColumns[i]
! );
}
return buf.toString();
|