From: <one...@us...> - 2003-01-09 09:40:24
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv8251/cirrus/hibernate/loader Modified Files: OuterJoinLoader.java Log Message: Mark Woon's patch to limit length of aliases Index: OuterJoinLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/loader/OuterJoinLoader.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** OuterJoinLoader.java 26 Nov 2002 14:47:29 -0000 1.14 --- OuterJoinLoader.java 9 Jan 2003 09:40:19 -0000 1.15 *************** *** 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); } } *************** *** 104,108 **** columns = StringHelper.prefix( ! ( (Loadable) persister ).getIdentifierColumnNames(), //The cast is safe because collections can't contain a 1-to-1 alias + '.' ); --- 104,108 ---- columns = StringHelper.prefix( ! persister.getIdentifierColumnNames(), alias + '.' ); *************** *** 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,306 **** 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) ); } } |