From: <one...@us...> - 2003-02-02 06:41:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv25866/hibernate/persister Modified Files: EntityPersister.java NormalizedEntityPersister.java Log Message: applied Mark Woon's new patch for long column names Index: EntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** EntityPersister.java 28 Jan 2003 10:22:20 -0000 1.14 --- EntityPersister.java 2 Feb 2003 06:41:05 -0000 1.15 *************** *** 71,78 **** --- 71,80 ---- private transient final boolean[] definedOnSubclass; private transient final String[][] propertyColumnNames; + private transient final String[][] propertyColumnAliases; private transient final String[][] subclassPropertyColumnNameClosure; private transient final String discriminatorColumnName; private transient final String[] subclassColumnClosure; + private transient final String[] subclassColumnAliasClosure; private transient final Type[] subclassPropertyTypeClosure; private transient final Class[] subclassClosure; *************** *** 162,172 **** } - /** - * Return an array of all column names used by all subclasses - * of the persistent class - */ - public String[] getSubclassColumnClosure() { - return subclassColumnClosure; - } public Type getSubclassPropertyType(int i) { return subclassPropertyTypeClosure[i]; --- 164,167 ---- *************** *** 185,189 **** public String[] getPropertyColumnNames(int i) { ! return propertyColumnNames[i]; } --- 180,184 ---- public String[] getPropertyColumnNames(int i) { ! return propertyColumnAliases[i]; } *************** *** 295,302 **** .setTableName( getTableName() ) .addColumns( getIdentifierColumnNames() ) ! .addColumns( getSubclassColumnClosure() ); ! if ( hasSubclasses() ) { ! select.addColumn( getDiscriminatorColumnName() ); ! } return select.addCondition( getIdentifierColumnNames(), "=?" ).toStatementString(); } --- 290,295 ---- .setTableName( getTableName() ) .addColumns( getIdentifierColumnNames() ) ! .addColumns( subclassColumnClosure, subclassColumnAliasClosure ); ! if ( hasSubclasses() ) select.addColumn( getDiscriminatorColumnName() ); return select.addCondition( getIdentifierColumnNames(), "=?" ).toStatementString(); } *************** *** 644,649 **** propertyColumnNames = new String[hydrateSpan][]; propertyColumnSpans = new int[hydrateSpan]; - ArrayList columns = new ArrayList(); HashSet thisClassProperties = new HashSet(); --- 637,642 ---- propertyColumnNames = new String[hydrateSpan][]; + propertyColumnAliases = new String[hydrateSpan][]; propertyColumnSpans = new int[hydrateSpan]; HashSet thisClassProperties = new HashSet(); *************** *** 651,668 **** int i=0; while( iter.hasNext() ) { Property prop = (Property) iter.next(); ! propertyColumnSpans[i] = prop.getColumnSpan(); thisClassProperties.add(prop); ! String[] colNames = new String[ propertyColumnSpans[i] ]; Iterator colIter = prop.getColumnIterator(); int j=0; while ( colIter.hasNext() ) { ! String colname = ( (Column) colIter.next() ).getName(); ! colNames[j++] = colname; ! columns.add(colname); } propertyColumnNames[i] = colNames; initPropertyPaths(prop, StringHelper.EMPTY_STRING); --- 644,667 ---- int i=0; + boolean foundColumn = false; while( iter.hasNext() ) { Property prop = (Property) iter.next(); ! int span = prop.getColumnSpan(); ! propertyColumnSpans[i] = span; thisClassProperties.add(prop); ! String[] colNames = new String[span]; ! String[] colAliases = new String[span]; Iterator colIter = prop.getColumnIterator(); int j=0; while ( colIter.hasNext() ) { ! Column col = (Column) colIter.next(); ! colAliases[j] = col.getAlias(); ! colNames[j] = col.getName(); ! j++; ! foundColumn=true; } propertyColumnNames[i] = colNames; + propertyColumnAliases[i] = colAliases; initPropertyPaths(prop, StringHelper.EMPTY_STRING); *************** *** 674,682 **** } ! hasColumns = columns.size()!=0; ! columns.clear(); ArrayList types = new ArrayList(); ArrayList propColumns = new ArrayList(); ArrayList joinedFetchesList = new ArrayList(); ArrayList definedBySubclass = new ArrayList(); --- 673,682 ---- } ! hasColumns = foundColumn; ! ArrayList columns = new ArrayList(); ArrayList types = new ArrayList(); ArrayList propColumns = new ArrayList(); + ArrayList aliases = new ArrayList(); ArrayList joinedFetchesList = new ArrayList(); ArrayList definedBySubclass = new ArrayList(); *************** *** 693,697 **** Column col = (Column) colIter.next(); columns.add( col.getName() ); ! cols[l++]=col.getName(); } propColumns.add(cols); --- 693,698 ---- Column col = (Column) colIter.next(); columns.add( col.getName() ); ! aliases.add( col.getAlias() ); ! cols[l++] = col.getName(); } propColumns.add(cols); *************** *** 703,706 **** --- 704,708 ---- subclassPropertyTypeClosure = (Type[]) types.toArray(TYPE_ARRAY); subclassPropertyColumnNameClosure = (String[][]) propColumns.toArray( new String[ propColumns.size() ][] ); + subclassColumnAliasClosure = (String[]) aliases.toArray(STRING_ARRAY); joinedFetch = new int[ joinedFetchesList.size() ]; *************** *** 843,847 **** .setSuffix(suffix); if ( hasSubclasses() ) frag.addColumn( name, getDiscriminatorColumnName() ); ! return frag.addColumns( name, getSubclassColumnClosure() ) .toFragmentString(); } --- 845,849 ---- .setSuffix(suffix); if ( hasSubclasses() ) frag.addColumn( name, getDiscriminatorColumnName() ); ! return frag.addColumns( name, subclassColumnClosure, subclassColumnAliasClosure ) .toFragmentString(); } Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** NormalizedEntityPersister.java 1 Feb 2003 12:22:35 -0000 1.7 --- NormalizedEntityPersister.java 2 Feb 2003 06:41:05 -0000 1.8 *************** *** 168,174 **** } - public String[] getSubclassColumnClosure() { - return subclassColumnClosure; - } public Type getSubclassPropertyType(int i) { return subclassPropertyTypeClosure[i]; --- 168,171 ---- *************** *** 766,770 **** String colname = col.getName(); propCols[j] = colname; ! propAliases[j] = col.getName() + tab.getUniqueInteger() + StringHelper.UNDERSCORE; j++; } --- 763,767 ---- String colname = col.getName(); propCols[j] = colname; ! propAliases[j] = col.getAlias() + tab.getUniqueInteger() + StringHelper.UNDERSCORE; j++; } *************** *** 806,810 **** coltables.add(tabnum); cols[l++]=col.getName(); ! aliases.add( col.getName() + tab.getUniqueInteger() + StringHelper.UNDERSCORE ); } propColumns.add(cols); --- 803,807 ---- coltables.add(tabnum); cols[l++]=col.getName(); ! aliases.add( col.getAlias() + tab.getUniqueInteger() + StringHelper.UNDERSCORE ); } propColumns.add(cols); *************** *** 1000,1004 **** public String propertySelectFragment(String alias, String suffix) { ! String[] cols = getSubclassColumnClosure(); SelectFragment frag = new SelectFragment() .setSuffix(suffix); --- 997,1001 ---- public String propertySelectFragment(String alias, String suffix) { ! String[] cols = subclassColumnClosure; SelectFragment frag = new SelectFragment() .setSuffix(suffix); |