Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader
In directory sc8-pr-cvs1:/tmp/cvs-serv16192/net/sf/hibernate/loader
Modified Files:
OuterJoinLoader.java
Log Message:
redesigned id generator package
applied Mark Woon's patch for generated alias lengths
minor refactoring of Transaction package
Index: OuterJoinLoader.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OuterJoinLoader.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** OuterJoinLoader.java 5 Jan 2003 02:11:21 -0000 1.4
--- OuterJoinLoader.java 9 Jan 2003 12:24:51 -0000 1.5
***************
*** 73,77 ****
if ( autoEager( persister.enableJoinedFetch(), etype, session ) ) {
// fetch many-to-many by outerjoin depending value of outer-join in mapping
! walkTree(etype, columns, persister, alias, associations, new HashSet(), session);
}
}
--- 73,77 ----
if ( autoEager( persister.enableJoinedFetch(), etype, session ) ) {
// fetch many-to-many by outerjoin depending value of outer-join in mapping
! walkTree(etype, columns, persister, associations, new HashSet(), session);
}
}
***************
*** 112,116 ****
}
! walkTree(etype, columns, persister, alias, associations, classPersisters, session);
}
}
--- 112,116 ----
}
! walkTree(etype, columns, persister, associations, classPersisters, session);
}
}
***************
*** 139,143 ****
EntityType etype = (EntityType) types[i];
if ( autoEager( act.enableJoinedFetch(i), etype, session ) )
! walkTree(etype, range, persister, alias, associations, classPersisters, session);
}
else if ( types[i].isComponentType() ) {
--- 139,143 ----
EntityType etype = (EntityType) types[i];
if ( autoEager( act.enableJoinedFetch(i), etype, session ) )
! walkTree(etype, range, persister, associations, classPersisters, session);
}
else if ( types[i].isComponentType() ) {
***************
*** 158,162 ****
* Add on association (one-to-one or many-to-one) to a list of associations be fetched by outerjoin (if necessary)
*/
! private void walkTree(EntityType type, String[] columns, Object persister, String alias, List associations, Set classPersisters, SessionFactoryImplementor session) throws MappingException {
Loadable subpersister = (Loadable) session.getPersister( type.getPersistentClass() );
--- 158,162 ----
* Add on association (one-to-one or many-to-one) to a list of associations be fetched by outerjoin (if necessary)
*/
! private void walkTree(EntityType type, String[] columns, Object persister, List associations, Set classPersisters, SessionFactoryImplementor session) throws MappingException {
Loadable subpersister = (Loadable) session.getPersister( type.getPersistentClass() );
***************
*** 222,226 ****
.append( keyCols[j] )
.append(" AS ")
! .append( aliasColumn( keyCols[j], suffix ) );
if ( j != keyCols.length-1 ) buf.append(", ");
}
--- 222,226 ----
.append( keyCols[j] )
.append(" AS ")
! .append( StringHelper.suffix( keyCols[j], suffix ) );
if ( j != keyCols.length-1 ) buf.append(", ");
}
***************
*** 276,307 ****
tableName = StringHelper.unqualify(tableName);
! return aliasCore(tableName.length() <=5 ?
! tableName :
! tableName.substring(0, 5),
! Integer.toString(n)
! );
! }
!
! protected static String aliasColumn(String columnName, String suffix) {
! return aliasCore(columnName, suffix);
! }
- //TODO: refactor! this is a duplicate of a method in the Loader heirarchy
- private static String aliasCore(String name, String suffix) {
-
- char quote = name.charAt(0);
- boolean nameEscaped = Dialect.QUOTE.indexOf(quote) > -1;
-
- if (nameEscaped) name = name.substring(1, name.length()-1);
-
- StringBuffer aliasBuilder = new StringBuffer(name.length());
-
- if (nameEscaped) aliasBuilder.append(quote);
- aliasBuilder.append(name);
- aliasBuilder.append(suffix);
- if (nameEscaped) aliasBuilder.append(quote);
-
- return aliasBuilder.toString();
- }
}
--- 276,285 ----
tableName = StringHelper.unqualify(tableName);
! return StringHelper.suffix(
! tableName.length() <=5 ? tableName : tableName.substring(0, 5),
! Integer.toString(n)
! );
! }
}
|