Skip to content

Commit f7d9640

Browse files
committed
HHH-10141 - Fix issue with ClassicQueryTranslatorFactory and revision parameter type detection
1 parent 307d040 commit f7d9640

File tree

1 file changed

+14
-2
lines changed
  • hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/query

1 file changed

+14
-2
lines changed

hibernate-envers/src/main/java/org/hibernate/envers/internal/tools/query/QueryBuilder.java

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,12 @@
1313

1414
import org.hibernate.Query;
1515
import org.hibernate.Session;
16+
import org.hibernate.envers.RevisionType;
17+
import org.hibernate.envers.internal.entities.RevisionTypeType;
1618
import org.hibernate.envers.internal.tools.MutableInteger;
1719
import org.hibernate.envers.internal.tools.StringTools;
1820
import org.hibernate.envers.tools.Pair;
21+
import org.hibernate.type.CustomType;
1922

2023
/**
2124
* A class for incrementally building a HQL query.
@@ -222,9 +225,18 @@ public Query toQuery(Session session) {
222225

223226
final Query query = session.createQuery( querySb.toString() );
224227
for ( Map.Entry<String, Object> paramValue : queryParamValues.entrySet() ) {
225-
query.setParameter( paramValue.getKey(), paramValue.getValue() );
228+
if ( paramValue.getValue() instanceof RevisionType ) {
229+
// this is needed when the ClassicQueryTranslatorFactory is used
230+
query.setParameter(
231+
paramValue.getKey(),
232+
paramValue.getValue(),
233+
new CustomType( new RevisionTypeType() )
234+
);
235+
}
236+
else {
237+
query.setParameter( paramValue.getKey(), paramValue.getValue() );
238+
}
226239
}
227-
228240
return query;
229241
}
230242
}

0 commit comments

Comments
 (0)