From: <one...@us...> - 2003-04-18 05:10:23
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection In directory sc8-pr-cvs1:/tmp/cvs-serv16387/hibernate/collection Modified Files: CollectionPersister.java Log Message: * code cleanups * collection where attribute now used for collection removal Index: CollectionPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/CollectionPersister.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** CollectionPersister.java 6 Apr 2003 10:11:07 -0000 1.18 --- CollectionPersister.java 18 Apr 2003 05:09:49 -0000 1.19 *************** *** 31,35 **** import net.sf.hibernate.sql.Insert; import net.sf.hibernate.sql.SelectFragment; - import net.sf.hibernate.sql.SimpleSelect; import net.sf.hibernate.sql.Update; import net.sf.hibernate.type.EntityType; --- 31,34 ---- *************** *** 52,56 **** public final class CollectionPersister implements CollectionMetadata { ! private final String sqlSelectString; private final String sqlDeleteString; private final String sqlInsertRowString; --- 51,55 ---- public final class CollectionPersister implements CollectionMetadata { ! //private final String sqlSelectString; private final String sqlDeleteString; private final String sqlInsertRowString; *************** *** 185,194 **** } ! sqlSelectString = sqlSelectString(); ! sqlDeleteString = sqlDeleteString(); //sqlSelectRowString = sqlSelectRowString(); ! sqlInsertRowString = sqlInsertRowString(); ! sqlUpdateRowString = sqlUpdateRowString(); ! sqlDeleteRowString = sqlDeleteRowString(); isLazy = collection.isLazy(); --- 184,193 ---- } ! //sqlSelectString = sqlSelectString(); ! sqlDeleteString = generateDeleteString(); //sqlSelectRowString = sqlSelectRowString(); ! sqlInsertRowString = generateInsertRowString(); ! sqlUpdateRowString = generateUpdateRowString(); ! sqlDeleteRowString = generateDeleteRowString(); isLazy = collection.isLazy(); *************** *** 246,250 **** --- 245,262 ---- } + private static final java.util.Set keywords = new HashSet(); + static { + keywords.add("and"); + keywords.add("or"); + keywords.add("not"); + keywords.add("like"); + keywords.add("is"); + keywords.add("null"); + } + public String getSQLWhereString(String alias) { + // takes the where condition provided in the mapping + // attribute and interpolates the alias + //TODO: make this a bit nicer/quicker StringTokenizer tokens = new StringTokenizer(sqlWhereString, " =><!", true); StringBuffer result = new StringBuffer(); *************** *** 261,279 **** } - private static final java.util.Set keywords = new HashSet(); - static { - keywords.add("and"); - keywords.add("or"); - keywords.add("not"); - keywords.add("like"); - keywords.add("is"); - keywords.add("null"); - } - public String getSQLOrderByString(String alias) { StringTokenizer tokens = new StringTokenizer(sqlOrderByString, ","); StringBuffer result = new StringBuffer(); while ( tokens.hasMoreTokens() ) { ! result.append(alias).append(StringHelper.DOT).append( tokens.nextToken().trim() ); if ( tokens.hasMoreTokens() ) result.append(StringHelper.COMMA_SPACE); } --- 273,286 ---- } public String getSQLOrderByString(String alias) { + // takes order by clause provided in the mapping + // attribute and interpolates the alias + //TODO: make this a bit nicer/quicker StringTokenizer tokens = new StringTokenizer(sqlOrderByString, ","); StringBuffer result = new StringBuffer(); while ( tokens.hasMoreTokens() ) { ! result.append(alias) ! .append(StringHelper.DOT) ! .append( tokens.nextToken().trim() ); if ( tokens.hasMoreTokens() ) result.append(StringHelper.COMMA_SPACE); } *************** *** 293,300 **** } - private String getSQLSelectString() { - return sqlSelectString; - } - private String getSQLDeleteString() { return sqlDeleteString; --- 300,303 ---- *************** *** 380,385 **** } ! private String sqlSelectString() { ! //TODO: Jon Lipsky's patch to allow a Map from id's to objects SimpleSelect select = new SimpleSelect() .setTableName(qualifiedTableName) --- 383,388 ---- } ! /*private String sqlSelectString() { ! //we no longer have Jon Lipsky's patch to allow a Map from id's to objects SimpleSelect select = new SimpleSelect() .setTableName(qualifiedTableName) *************** *** 387,412 **** if (hasIndex) select.addColumns(indexColumnNames); select.addCondition( keyColumnNames, "=?" ); if (hasOrder) select.setOrderBy(sqlOrderByString); return select.toStatementString(); ! } ! private String sqlDeleteString() { if (isOneToMany) { Update update = new Update() .setTableName(qualifiedTableName) ! .addColumns(keyColumnNames, "null"); if (hasIndex) update.addColumns(indexColumnNames, "null"); ! return update.setPrimaryKeyColumnNames(keyColumnNames) ! .toStatementString(); } else { ! return new Delete() .setTableName(qualifiedTableName) ! .setPrimaryKeyColumnNames(keyColumnNames) ! .toStatementString(); } } ! private String sqlInsertRowString() { if (isOneToMany) { Update update = new Update() --- 390,418 ---- if (hasIndex) select.addColumns(indexColumnNames); select.addCondition( keyColumnNames, "=?" ); + if (hasWhere) select.addWhereToken( " and " + sqlWhereString ); if (hasOrder) select.setOrderBy(sqlOrderByString); return select.toStatementString(); ! }*/ ! private String generateDeleteString() { if (isOneToMany) { Update update = new Update() .setTableName(qualifiedTableName) ! .addColumns(keyColumnNames, "null") ! .setPrimaryKeyColumnNames(keyColumnNames); if (hasIndex) update.addColumns(indexColumnNames, "null"); ! if (hasWhere) update.setWhere(sqlWhereString); ! return update.toStatementString(); } else { ! Delete delete = new Delete() .setTableName(qualifiedTableName) ! .setPrimaryKeyColumnNames(keyColumnNames); ! if (hasWhere) delete.setWhere(sqlWhereString); ! return delete.toStatementString(); } } ! private String generateInsertRowString() { if (isOneToMany) { Update update = new Update() *************** *** 427,431 **** } ! private String sqlUpdateRowString() { if (isOneToMany) { return null; --- 433,437 ---- } ! private String generateUpdateRowString() { if (isOneToMany) { return null; *************** *** 440,444 **** } ! private String sqlDeleteRowString() { String[] pkColumns = ArrayHelper.join(keyColumnNames, rowSelectColumnNames); if (isOneToMany) { --- 446,450 ---- } ! private String generateDeleteRowString() { String[] pkColumns = ArrayHelper.join(keyColumnNames, rowSelectColumnNames); if (isOneToMany) { |