[hibernate-commits] Hibernate SVN: r20139 - core/branches/Branch_3_5/core/src/main/java/org/hibernate/hql/ast.

hibernate-commits at lists.jboss.org hibernate-commits at lists.jboss.org
Fri Aug 13 12:45:39 EDT 2010


Author: steve.ebersole at jboss.com
Date: 2010-08-13 12:45:39 -0400 (Fri, 13 Aug 2010)
New Revision: 20139

Modified:
   core/branches/Branch_3_5/core/src/main/java/org/hibernate/hql/ast/HqlSqlWalker.java
Log:
HHH-5449 - Versioned HQL update might issue incorrect SQL


Modified: core/branches/Branch_3_5/core/src/main/java/org/hibernate/hql/ast/HqlSqlWalker.java
===================================================================
--- core/branches/Branch_3_5/core/src/main/java/org/hibernate/hql/ast/HqlSqlWalker.java	2010-08-13 16:32:46 UTC (rev 20138)
+++ core/branches/Branch_3_5/core/src/main/java/org/hibernate/hql/ast/HqlSqlWalker.java	2010-08-13 16:45:39 UTC (rev 20139)
@@ -26,6 +26,7 @@
 
 import java.io.Serializable;
 import java.util.ArrayList;
+import java.util.Calendar;
 import java.util.Date;
 import java.util.HashMap;
 import java.util.HashSet;
@@ -1116,7 +1117,7 @@
 			eq.setFirstChild( versionPropertyNode );
 
 			AST versionIncrementNode = null;
-			if ( Date.class.isAssignableFrom( versionType.getReturnedClass() ) ) {
+			if ( isTimestampBasedVersion( versionType ) ) {
 				versionIncrementNode = getASTFactory().create( HqlSqlTokenTypes.PARAM, "?" );
 				ParameterSpecification paramSpec = new VersionTypeSeedParameterSpecification( versionType );
 				( ( ParameterNode ) versionIncrementNode ).setHqlParameterSpecification( paramSpec );
@@ -1141,6 +1142,12 @@
 		}
 	}
 
+	private boolean isTimestampBasedVersion(VersionType versionType) {
+		final Class javaType = versionType.getReturnedClass();
+		return Date.class.isAssignableFrom( javaType )
+				|| Calendar.class.isAssignableFrom( javaType );
+	}
+
 	private AST generateVersionPropertyNode(Queryable persister) throws SemanticException {
 		String versionPropertyName = persister.getPropertyNames()[ persister.getVersionProperty() ];
 		AST versionPropertyRef = getASTFactory().create( HqlSqlTokenTypes.IDENT, versionPropertyName );



More information about the hibernate-commits mailing list