diff --git a/hibernate-entitymanager/src/main/java/org/hibernate/jpa/criteria/expression/CaseLiteralExpression.java b/hibernate-entitymanager/src/main/java/org/hibernate/jpa/criteria/expression/CaseLiteralExpression.java index d56acff1ef..94fadf457e 100644 --- a/hibernate-entitymanager/src/main/java/org/hibernate/jpa/criteria/expression/CaseLiteralExpression.java +++ b/hibernate-entitymanager/src/main/java/org/hibernate/jpa/criteria/expression/CaseLiteralExpression.java @@ -21,6 +21,13 @@ public class CaseLiteralExpression extends LiteralExpression { @Override public String render(RenderingContext renderingContext) { + // There's no need to cast a boolean value and it actually breaks on + // MySQL and MariaDB because they don't support casting to bit. + // Skip the cast for a boolean literal. + if ( getJavaType() == Boolean.class && Boolean.class.isInstance( getLiteral() ) ) { + return super.render( renderingContext ); + } + // wrapping the result in a cast to determine the node type during the antlr hql parsing phase return CastFunction.CAST_NAME + '(' + super.render( renderingContext ) +