You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Marc Prud'hommeaux (JIRA)" <ji...@apache.org> on 2007/04/09 18:42:32 UTC
[jira] Reopened: (OPENJPA-208) NoResultException and
NonUniqueResultException are not thrown when expected
[ https://issues.apache.org/jira/browse/OPENJPA-208?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Marc Prud'hommeaux reopened OPENJPA-208:
----------------------------------------
>From Abe on mailing list: That breaks the single result optimization that was added for OPENJPA-168 when getSingleResult() is called. There was a reason we moved the validation to the kernel. The previous code was correct. You need to use the "hard" way of creating new exception types.
> NoResultException and NonUniqueResultException are not thrown when expected
> ---------------------------------------------------------------------------
>
> Key: OPENJPA-208
> URL: https://issues.apache.org/jira/browse/OPENJPA-208
> Project: OpenJPA
> Issue Type: Bug
> Components: jpa
> Affects Versions: 0.9.6
> Reporter: Marc Prud'hommeaux
> Assigned To: Marc Prud'hommeaux
> Fix For: 0.9.7
>
>
> When calling Query.getSingleResult() on a query that either has no result or multiple results, either a NoResultException and NonUniqueResultException (respectively) should be thrown in accordance with section 3.6.1 of the JPA spec. Instead, we appear to throw a org.apache.openjpa.persistence.InvalidStateException:
> org.apache.openjpa.persistence.InvalidStateException: The query on candidate type "class com.sun.ts.tests.ejb30.persistence.query.apitests.Department" with filter "select d.name from Department d where d.id > 1" was configured to have a unique result, but more than one instance matched the query.
> at org.apache.openjpa.kernel.QueryImpl.singleResult(QueryImpl.java:1282)
> at org.apache.openjpa.kernel.QueryImpl.toResult(QueryImpl.java:1207)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:982)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:791)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:761)
> at org.apache.openjpa.kernel.QueryImpl.execute(QueryImpl.java:757)
> at org.apache.openjpa.kernel.DelegatingQuery.execute(DelegatingQuery.java:514)
> at org.apache.openjpa.persistence.QueryImpl.execute(QueryImpl.java:225)
> at org.apache.openjpa.persistence.QueryImpl.getSingleResult(QueryImpl.java:287)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.