{"record":{"id":"676709763e1b490e","repo":"hibernate/hibernate-orm","slug":"argument-s-of-fk-function-is-not-a-single-v","errorCode":null,"errorMessage":"Argument '%s' of 'fk()' function is not a single-valued association","messagePattern":"Argument '(.+?)' of 'fk\\(\\)' function is not a single-valued association","errorType":"exception","errorClass":"FunctionArgumentException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java","lineNumber":3621,"sourceCode":"\n\t\t\tfinal var naturalIdAttribute =\n\t\t\t\t\t(SingularPersistentAttribute<? super U, ?>)\n\t\t\t\t\t\t\tattributes.get( 0 );\n\t\t\treturn sqmPath.get( naturalIdAttribute );\n\t\t}\n\t\tthrow new FunctionArgumentException( \"Argument '\" + sqmPath.getNavigablePath()\n\t\t\t\t+ \"' of 'naturalid()' does not resolve to an entity type\" );\n\t}\n\n\t@Override\n\tpublic SqmFkExpression<?> visitToOneFkReference(HqlParser.ToOneFkReferenceContext ctx) {\n\t\tfinal var sqmPath = consumeDomainPath( (HqlParser.PathContext) ctx.getChild( 2 ) );\n\t\tfinal var toOneReference = sqmPath.getResolvedModel();\n\t\tfinal boolean validToOneRef =\n\t\t\t\ttoOneReference.getBindableType() == Bindable.BindableType.SINGULAR_ATTRIBUTE\n\t\t\t\t\t\t&& toOneReference.getPathType() instanceof SqmEntityDomainType<?>;\n\t\tif ( !validToOneRef ) {\n\t\t\tthrow new FunctionArgumentException(\n\t\t\t\t\tString.format(\n\t\t\t\t\t\t\tLocale.ROOT,\n\t\t\t\t\t\t\t\"Argument '%s' of 'fk()' function is not a single-valued association\",\n\t\t\t\t\t\t\tsqmPath.getNavigablePath()\n\t\t\t\t\t)\n\t\t\t);\n\n\t\t}\n\t\treturn new SqmFkExpression<>( sqmPath );\n\t}\n\n\t@Override\n\tpublic SqmMapEntryReference<?, ?> visitMapEntrySelection(HqlParser.MapEntrySelectionContext ctx) {\n\t\treturn new SqmMapEntryReference<>(\n\t\t\t\tconsumePluralAttributeReference( ctx.path() ),\n\t\t\t\tnodeBuilder()\n\t\t);\n\t}","sourceCodeStart":3603,"sourceCodeEnd":3639,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/query/hql/internal/SemanticQueryBuilder.java#L3603-L3639","documentation":"Error \"Argument '%s' of 'fk()' function is not a single-valued association\" thrown in hibernate/hibernate-orm.","triggerScenarios":"fk() is applied to something that is not a single-valued association: Argument '<value>' of 'fk()' function is not a single-valued association","commonSituations":"Using fk() on basic attributes or collection-valued associations instead of many-to-one/one-to-one references.","solutions":["fk() requires a single-valued (many-to-one/one-to-one) association path. Pass a singular association reference, not a collection, and check the path resolves to a to-one association."],"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"}