From: <one...@us...> - 2003-02-15 01:01:27
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection In directory sc8-pr-cvs1:/tmp/cvs-serv32602/sf/hibernate/collection Modified Files: CollectionPersister.java SortedMap.java SortedSet.java Log Message: fixed a bug wrapping sorted collections don't ever update mutable=false objects added where attribute to collection mappings Index: CollectionPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/CollectionPersister.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** CollectionPersister.java 9 Feb 2003 07:41:15 -0000 1.10 --- CollectionPersister.java 15 Feb 2003 01:00:51 -0000 1.11 *************** *** 6,9 **** --- 6,10 ---- import java.sql.ResultSet; import java.sql.SQLException; + import java.util.HashSet; import java.util.Iterator; import java.util.StringTokenizer; *************** *** 56,60 **** --- 57,63 ---- private final String sqlDeleteRowString; private final String sqlOrderByString; + private final String sqlWhereString; private final boolean hasOrder; + private final boolean hasWhere; private final boolean isSet; private final Type keyType; *************** *** 95,100 **** ownerClass = collection.getOwnerClass(); ! hasOrder = collection.getOrderByString()!=null; ! sqlOrderByString = collection.getOrderByString(); cache=collection.getCache(); --- 98,105 ---- ownerClass = collection.getOwnerClass(); ! sqlOrderByString = collection.getOrderBy(); ! hasOrder = sqlOrderByString!=null; ! sqlWhereString = collection.getWhere(); ! hasWhere = sqlWhereString!=null; cache=collection.getCache(); *************** *** 236,241 **** } ! public String getSQLOrderByString() { ! return sqlOrderByString; } --- 241,268 ---- } ! public String getSQLWhereString(String alias) { ! StringTokenizer tokens = new StringTokenizer(sqlWhereString, " =><!", true); ! StringBuffer result = new StringBuffer(); ! while ( tokens.hasMoreTokens() ) { ! String token = tokens.nextToken(); ! if ( Character.isLetter( token.charAt(0) ) && !keywords.contains(token) ) { ! //TODO: handle and, or, not ! result.append(alias).append(StringHelper.DOT).append(token); ! } ! else { ! result.append(token); ! } ! } ! return result.toString(); ! } ! ! 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"); } *************** *** 256,259 **** --- 283,290 ---- public boolean hasOrdering() { return hasOrder; + } + + public boolean hasWhere() { + return hasWhere; } Index: SortedMap.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/SortedMap.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SortedMap.java 9 Feb 2003 07:41:15 -0000 1.6 --- SortedMap.java 15 Feb 2003 01:00:51 -0000 1.7 *************** *** 67,70 **** --- 67,71 ---- public SortedMap(SessionImplementor session, java.util.SortedMap map) { super(session, map); + comparator = map.comparator(); } Index: SortedSet.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/collection/SortedSet.java,v retrieving revision 1.6 retrieving revision 1.7 diff -C2 -d -r1.6 -r1.7 *** SortedSet.java 9 Feb 2003 07:41:15 -0000 1.6 --- SortedSet.java 15 Feb 2003 01:00:51 -0000 1.7 *************** *** 46,49 **** --- 46,50 ---- public SortedSet(SessionImplementor session, java.util.SortedSet set) { super(session, set); + comparator = set.comparator(); } |