{"record":{"id":"df4d2bc0f467c876","repo":"hibernate/hibernate-orm","slug":"query-by-natural-id-returned-more-that-one-row-s","errorCode":null,"errorMessage":"Query by natural id returned more that one row: %s","messagePattern":"Query by natural id returned more that one row: (.+?)","errorType":"exception","errorClass":"HibernateException","httpStatus":null,"severity":"error","filePath":"hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractNaturalIdLoader.java","lineNumber":305,"sourceCode":"\t\t\t\t\t\t\t\tbindings,\n\t\t\t\t\t\t\t\tnew NaturalIdLoaderWithOptionsExecutionContext( session, queryOptions ),\n\t\t\t\t\t\t\t\tRowTransformerSingularReturnImpl.instance(),\n\t\t\t\t\t\t\t\tnull,\n\t\t\t\t\t\t\t\tListResultsConsumer.UniqueSemantic.FILTER,\n\t\t\t\t\t\t\t\t1\n\t\t\t\t\t\t);\n\n\t\tif ( statisticsEnabled ) {\n\t\t\tstatistics.naturalIdQueryExecuted(\n\t\t\t\t\tentityDescriptor().getEntityPersister().getRootEntityName(),\n\t\t\t\t\tSystem.nanoTime() - startTime\n\t\t\t);\n\t\t}\n\n\t\treturn switch ( results.size() ) {\n\t\t\tcase 0 -> null;\n\t\t\tcase 1 -> results.get( 0 );\n\t\t\tdefault -> throw new HibernateException(\n\t\t\t\t\tString.format(\n\t\t\t\t\t\t\t\"Query by natural id returned more that one row: %s\",\n\t\t\t\t\t\t\tentityDescriptor.getEntityName()\n\t\t\t\t\t)\n\t\t\t);\n\t\t};\n\t}\n\n\tprivate static JdbcSelect createJdbcOperationQuerySelect(\n\t\t\tSelectStatement sqlSelect,\n\t\t\tSessionFactoryImplementor factory,\n\t\t\tJdbcParameterBindings bindings,\n\t\t\tQueryOptions queryOptions) {\n\t\treturn factory.getJdbcServices().getJdbcEnvironment()\n\t\t\t\t.getSqlAstTranslatorFactory()\n\t\t\t\t.buildSelectTranslator( factory, sqlSelect )\n\t\t\t\t.translate( bindings, queryOptions );\n\t}","sourceCodeStart":287,"sourceCodeEnd":323,"githubUrl":"https://github.com/hibernate/hibernate-orm/blob/fad1729dce015f908198d57a8d80274a30f905a5/hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractNaturalIdLoader.java#L287-L323","documentation":"Error \"Query by natural id returned more that one row: %s\" thrown in hibernate/hibernate-orm.","triggerScenarios":"Thrown at hibernate-core/src/main/java/org/hibernate/loader/ast/internal/AbstractNaturalIdLoader.java:305 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":["Add a unique constraint on the natural id column(s) or fix duplicate data; natural ids must be unique."],"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"}