From: <one...@us...> - 2002-11-05 15:24:40
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/query In directory usw-pr-cvs1:/tmp/cvs-serv4736/hibernate/query Modified Files: QueryTranslator.java Log Message: queries against mapped classes now pick up *all* subclasses, wether mapped as subclasses or not fixed a bug when the same classname appeared twice in a query Index: QueryTranslator.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/query/QueryTranslator.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** QueryTranslator.java 4 Nov 2002 08:10:52 -0000 1.41 --- QueryTranslator.java 5 Nov 2002 15:24:36 -0000 1.42 *************** *** 260,266 **** } else { ! Queryable result = getPersister(typeName); ! if ( result==null ) throw new QueryException( "persistent class not found: " + typeName ); ! return result; } } --- 260,269 ---- } else { ! try { ! return (Queryable) factory.getPersister(typeName); ! } ! catch (MappingException me) { ! throw new QueryException( "persistent class not found: " + typeName ); ! } } } *************** *** 789,792 **** --- 792,796 ---- ArrayList placeholders = new ArrayList(); ArrayList replacements = new ArrayList(); + int count=0; boolean check = false; while ( tokens.hasMoreTokens() ) { *************** *** 813,818 **** } String[] implementors = factory.getImplementors(clazz); if ( implementors!=null ) { ! placeholders.add(token); replacements.add(implementors); } --- 817,824 ---- } String[] implementors = factory.getImplementors(clazz); + String placeholder = "$clazz" + count + "$"; + query = StringHelper.replaceOnce(query, token, placeholder); if ( implementors!=null ) { ! placeholders.add(placeholder); replacements.add(implementors); } |