{"record":{"id":"e74be67b348d9fb5","repo":"quarkusio/quarkus","slug":"wrong-result-from-named-jpa-query-e74be6","errorCode":null,"errorMessage":"Wrong result from named JPA query","messagePattern":"Wrong result from named JPA query","errorType":"http","errorClass":"RuntimeException","httpStatus":500,"severity":"error","filePath":"integration-tests/jpa-postgresql-withxml/src/main/java/io/quarkus/it/jpa/postgresql/JPAFunctionalityTestEndpoint.java","lineNumber":102,"sourceCode":"                throw new RuntimeException(\"Incorrect order of results\");\n            }\n            StringBuilder sb = new StringBuilder(\"list of stored Person names:\\n\\t\");\n            for (Person p : allpersons) {\n                p.describeFully(sb);\n            }\n            sb.append(\"\\nList complete.\\n\");\n            System.out.print(sb);\n        });\n\n        //Try a JPA named query:\n        QuarkusTransaction.requiringNew().run(() -> {\n            TypedQuery<Person> typedQuery = em.createNamedQuery(\n                    \"get_person_by_name\", Person.class);\n            typedQuery.setParameter(\"name\", \"Quarkus\");\n            final Person singleResult = typedQuery.getSingleResult();\n\n            if (!singleResult.getName().equals(\"Quarkus\")) {\n                throw new RuntimeException(\"Wrong result from named JPA query\");\n            }\n        });\n\n        //Check that HQL fetch does not throw an exception\n        QuarkusTransaction.requiringNew()\n                .run(() -> em.createQuery(\"from Person p left join fetch p.address a\").getResultList());\n\n        cleanUpData();\n\n        return \"OK\";\n    }\n\n    private void cleanUpData() {\n        QuarkusTransaction.requiringNew()\n                .run(() -> em.createNativeQuery(\"Delete from Person\").executeUpdate());\n    }\n\n    private void persistNewPerson(String name) {","sourceCodeStart":84,"sourceCodeEnd":120,"githubUrl":"https://github.com/quarkusio/quarkus/blob/e1c734241f34c7919086ceb4c9262b4a58f6de44/integration-tests/jpa-postgresql-withxml/src/main/java/io/quarkus/it/jpa/postgresql/JPAFunctionalityTestEndpoint.java#L84-L120","documentation":"A RuntimeException thrown when a named query 'get_person_by_name' with parameter name='Quarkus' does not return an entity whose name equals 'Quarkus'. The named query is defined in the test's XML mapping (orm.xml), so a mismatch usually means the XML mapping or data is off.","triggerScenarios":"em.createNamedQuery(\"get_person_by_name\", Person.class).setParameter(\"name\", \"Quarkus\").getSingleResult() returns an entity with a different name - the XML-defined query selects the wrong column/alias or the DB contains different data.","commonSituations":"orm.xml edits that broke the JPQL, person table containing stale rows so getSingleResult picks a different row, or schema mismatch between XML mapping and actual DB columns.","solutions":["Inspect the 'get_person_by_name' named query in orm.xml and confirm it filters by name correctly","Clean the Person table so only the expected 'Quarkus' row matches","Enable SQL logging to verify the query executed against the expected table/columns"],"exampleFix":"// before (orm.xml)\n<named-query name=\"get_person_by_name\"><query>select p from Person p</query></named-query>\n// after\n<named-query name=\"get_person_by_name\"><query>select p from Person p where p.name = :name</query></named-query>","handlingStrategy":"validation","validationCode":"boolean quarkusPresent = em.createQuery(\"select count(p) from Person p where p.name = 'Quarkus'\", Long.class)\n    .getSingleResult() == 1;","typeGuard":null,"tryCatchPattern":null,"preventionTips":["Keep named queries in orm.xml reviewed alongside schema changes","Clean the table before asserting getSingleResult","Prefer asserting row count before getSingleResult to get clearer errors"],"tags":["jpa","named-query","xml-mapping","test-assertion"],"backgroundTag":"named-query-wrong-result","analyzedSha":"e1c734241f34c7919086ceb4c9262b4a58f6de44","analyzedAt":"2026-09-05T17:01:29.979Z","contentChangedAt":"2026-09-05T17:01:29.979Z","schemaVersion":2},"datasetVersion":"2026-09-12T22:17:10.623Z"}