{"record":{"id":"7503953427dd6a83","repo":"hibernate/hibernate-orm","slug":"expected-expression-but-got","errorCode":null,"errorMessage":"Expected '{}' expression but got '{}'","messagePattern":"Expected '(.+?)' expression but got '(.+?)'","errorType":"exception","errorClass":"IllegalArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/restriction/JakartaDataRestriction.java","lineNumber":633,"sourceCode":"\t}\n\n\tprivate static NodeBuilder nodeBuilder(CriteriaBuilder builder) {\n\t\tif ( builder instanceof NodeBuilder nodeBuilder ) {\n\t\t\treturn nodeBuilder;\n\t\t}\n\t\telse {\n\t\t\tthrow new IllegalArgumentException( \"Not Hibernate CriteriaBuilder\" );\n\t\t}\n\t}\n\n\tprivate static void verifyExpressionType(\n\t\t\tExpression<?> expression,\n\t\t\tClass<?> expectedType) {\n\t\tfinal var expressionType = expression.getJavaType();\n\t\tif ( expressionType != null ) {\n\t\t\tfinal var javaType = wrapperType( expressionType );\n\t\t\tif ( !expectedType.isAssignableFrom( javaType ) ) {\n\t\t\t\tthrow new IllegalArgumentException(\n\t\t\t\t\t\t\"Expected '\" + expectedType.getName() + \"' expression but got '\" + javaType.getName() + \"'\" );\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate static void verifyAssignableExpressionType(\n\t\t\tExpression<?> expression,\n\t\t\tExpression<?> valueExpression) {\n\t\tfinal var expressionType = wrapperType( expression.getJavaType() );\n\t\tfinal var valueType = wrapperType( valueExpression.getJavaType() );\n\t\tif ( expressionType != null && valueType != null && !expressionType.isAssignableFrom( valueType ) ) {\n\t\t\tthrow new IllegalArgumentException(\n\t\t\t\t\t\"Expected '\" + expressionType.getName() + \"' expression but got '\" + valueType.getName() + \"'\" );\n\t\t}\n\t}\n\n\tprivate static void verifyValueType(Expression<?> expression, Object value) {\n\t\tfinal var expressionType = wrapperType( expression.getJavaType() );","sourceCodeStart":615,"sourceCodeEnd":651,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/restriction/JakartaDataRestriction.java#L615-L651","documentation":"Error \"Expected '{}' expression but got '{}'\" thrown in hibernate/hibernate-orm.","triggerScenarios":"A runtime precondition of the Hibernate query API is violated: Expected '<value>' expression but got '<value>'","commonSituations":"Application code or configuration calls the query API in a way that violates its documented contract; the interpolated values in the message identify the offending input.","solutions":["The expression has an unexpected type. Supply an expression of the expected type."],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"fad1729dce015f908198d57a8d80274a30f905a5","analyzedAt":"2026-08-22T04:13:57.527Z","schemaVersion":2},"datasetVersion":"2026-08-22T09:17:25.309Z"}