Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/query
In directory sc8-pr-cvs1:/tmp/cvs-serv21213/cirrus/hibernate/query
Modified Files:
QueryTranslator.java
Log Message:
added support for <joined-subclass> to CodeGenerator
added Query.getNamedParameters(), Query.setProperties()
fixed a bug in Query.getReturnTypes()
Index: QueryTranslator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/query/QueryTranslator.java,v
retrieving revision 1.51
retrieving revision 1.52
diff -C2 -d -r1.51 -r1.52
*** QueryTranslator.java 25 Nov 2002 07:25:20 -0000 1.51
--- QueryTranslator.java 28 Dec 2002 02:25:49 -0000 1.52
***************
*** 1,9 ****
//$Id$
package cirrus.hibernate.query;
!
import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
--- 1,11 ----
//$Id$
package cirrus.hibernate.query;
!
! import java.io.Serializable;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
+ import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
***************
*** 284,293 ****
}
else {
! try {
! return (Queryable) factory.getPersister(typeName);
! }
! catch (MappingException me) {
! throw new QueryException( "persistent class not found: " + typeName );
! }
}
}
--- 286,292 ----
}
else {
! Queryable persister = getPersister(typeName);
! if (persister==null) throw new QueryException( "persistent class not found: " + typeName );
! return persister;
}
}
***************
*** 417,420 ****
--- 416,423 ----
}
+ public Collection getNamedParameters() {
+ return namedParameters.keySet();
+ }
+
public static String scalarName(int x, int y) {
return new StringBuffer().append('x').append(x).append('_').append(y).append('_').toString();
***************
*** 882,910 ****
else if (check) {
check = false;
! Class clazz=null;
! try {
! clazz = ReflectHelper.classForName(token);
! }
! catch (Exception e) {
! String[] imports = factory.getImports();
! for (int i=0; i<imports.length; i++) {
! try {
! clazz=ReflectHelper.classForName( imports[i] + '.' + token );
! }
! catch (Exception ex) {}
! if (clazz!=null) break;
}
- if (clazz==null) continue;
- }
- String[] implementors = factory.getImplementors(clazz);
- String placeholder = "$clazz" + count + "$";
- query = StringHelper.replaceOnce(query, token, placeholder);
- if ( implementors!=null ) {
- placeholders.add(placeholder);
- replacements.add(implementors);
}
}
}
return StringHelper.multiply( query, placeholders.iterator(), replacements.iterator() );
}
--- 885,917 ----
else if (check) {
check = false;
! Class clazz= getImportedClass(token, factory);
! if (clazz!=null) {
! String[] implementors = factory.getImplementors(clazz);
! String placeholder = "$clazz" + count + "$";
! query = StringHelper.replaceOnce(query, token, placeholder);
! if ( implementors!=null ) {
! placeholders.add(placeholder);
! replacements.add(implementors);
}
}
}
}
return StringHelper.multiply( query, placeholders.iterator(), replacements.iterator() );
+ }
+
+ private static Class getImportedClass(String name, SessionFactoryImplementor factory) {
+ try {
+ return ReflectHelper.classForName(name);
+ }
+ catch (Exception e) {
+ String[] imports = factory.getImports();
+ for (int i=0; i<imports.length; i++) {
+ try {
+ return ReflectHelper.classForName( imports[i] + '.' + name );
+ }
+ catch (Exception ex) {}
+ }
+ return null;
+ }
}
|