Skip to content

Commit 9886b7a

Browse files
committed
HHH-18564 Handle attribute converters for query literals
Allow both domain and relational forms when an attribute converter is present
1 parent d1980cb commit 9886b7a

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

hibernate-core/src/main/java/org/hibernate/query/sqm/sql/BaseSqmToSqlAstConverter.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7425,12 +7425,13 @@ private static <T extends Enum<T>> QueryLiteral<T> queryLiteral(
74257425
);
74267426
}
74277427

7428+
@SuppressWarnings({"unchecked", "rawtypes"})
74287429
@Override
74297430
public Object visitFieldLiteral(SqmFieldLiteral<?> sqmFieldLiteral) {
7430-
return new QueryLiteral<>(
7431-
sqmFieldLiteral.getValue(),
7432-
(BasicValuedMapping) determineValueMapping( sqmFieldLiteral )
7433-
);
7431+
final BasicValuedMapping valueMapping = (BasicValuedMapping) determineValueMapping( sqmFieldLiteral );
7432+
final Object value = sqmFieldLiteral.getValue();
7433+
final BasicValueConverter converter = valueMapping.getJdbcMapping().getValueConverter();
7434+
return new QueryLiteral<>( converter != null ? sqlLiteralValue( converter, value ) : value, valueMapping );
74347435
}
74357436

74367437
// ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

0 commit comments

Comments
 (0)