{"record":{"id":"245aa477692cad4f","repo":"hibernate/hibernate-orm","slug":"join-fetching-an-any-association-is-not-supported","errorCode":null,"errorMessage":"Join fetching an @Any association is not supported for entity '%s' because it does not use a basic identifier","messagePattern":"Join fetching an @Any association is not supported for entity '(.+?)' because it does not use a basic identifier","errorType":"exception","errorClass":"UnsupportedOperationException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/DiscriminatedAssociationMapping.java","lineNumber":523,"sourceCode":"\t\t\tauxiliaryMapping.applyPredicate(\n\t\t\t\t\tentityMappingType,\n\t\t\t\t\tpredicateCollector::applyPredicate,\n\t\t\t\t\tentityTableGroup,\n\t\t\t\t\tcreationState.getSqlAliasBaseGenerator(),\n\t\t\t\t\tcreationState.getLoadQueryInfluencers()\n\t\t\t);\n\t\t}\n\t}\n\n\tprivate Predicate createAssociationPredicate(\n\t\t\tTableGroup lhs,\n\t\t\tTableGroup entityTableGroup,\n\t\t\tEntityMappingType entityMappingType,\n\t\t\tDiscriminatorValueDetails valueDetail) {\n\t\tfinal var identifierMapping = entityMappingType.getIdentifierMapping();\n\t\tfinal BasicValuedModelPart identifierPart = identifierMapping.asBasicValuedModelPart();\n\t\tif ( identifierPart == null ) {\n\t\t\tthrow new UnsupportedOperationException(\n\t\t\t\t\t\"Join fetching an @Any association is not supported for entity '\" + entityMappingType.getEntityName()\n\t\t\t\t\t\t\t+ \"' because it does not use a basic identifier\"\n\t\t\t);\n\t\t}\n\n\t\tfinal TableReference discriminatorTableReference =\n\t\t\t\tlhs.resolveTableReference( null, discriminatorPart.getContainingTableExpression() );\n\t\tfinal TableReference keyTableReference =\n\t\t\t\tlhs.resolveTableReference( null, keyPart.getContainingTableExpression() );\n\t\tfinal TableReference identifierTableReference =\n\t\t\t\tentityTableGroup.resolveTableReference( entityTableGroup.getNavigablePath(), identifierPart.getContainingTableExpression() );\n\n\t\tfinal Junction predicate = new Junction( Junction.Nature.CONJUNCTION );\n\t\tpredicate.add(\n\t\t\t\tnew ComparisonPredicate(\n\t\t\t\t\t\tnew ColumnReference( discriminatorTableReference, discriminatorPart ),\n\t\t\t\t\t\tEQUAL,\n\t\t\t\t\t\tnew QueryLiteral<>( valueDetail.getValue(), discriminatorPart )","sourceCodeStart":505,"sourceCodeEnd":541,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/metamodel/mapping/internal/DiscriminatedAssociationMapping.java#L505-L541","documentation":"Error \"Join fetching an @Any association is not supported for entity '%s' because it does not use a basic identifier\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown when a join fetch is requested on an @Any association whose target entity uses a non-basic (composite) identifier.","commonSituations":"See trigger scenarios.","solutions":["Remove the join fetch on the @Any association; load it lazily or with a select fetch.","Use an entity with a basic (single-column) identifier for join-fetched any-associations."],"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"}