Skip to main content

[jpa-spec issues] [JIRA] Commented: (JPA_SPEC-50) @QuerySingleResult

  • From: "mkarg (JIRA)" < >
  • To:
  • Subject: [jpa-spec issues] [JIRA] Commented: (JPA_SPEC-50) @QuerySingleResult
  • Date: Fri, 5 Apr 2013 17:02:53 +0000 (GMT+00:00)
  • Auto-submitted: auto-generated


    [ 
http://java.net/jira/browse/JPA_SPEC-50?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=360551#action_360551
 ] 

mkarg commented on JPA_SPEC-50:
-------------------------------

While I agree that this solution is not the most flexible one, it possibly 
opens the most pragmatic solution, as it implies least code to write for the 
application developer (just one single line naming the query to invoke), 
offloads as much as possible to lower levers (as the query does all the work 
on the database server and just transports a single result value over the 
possibly slow line), and is rather intuitive as it mimics mosty the idea of 
an INSERT or UPDATE trigger which sets a single value by invoking an 
aggregating SELECT (like defaulting to the Count of existing rows etc.).

A producer method might be more flexible, but it is not so pragmatic in the 
daily use, as it implies much more code to write in turn for a flexibility 
that might not be needed (several lines of code), does not offload by default 
(depends on the cleverness of the developer, hence, does neither guide nor 
support him), and is not very intuitive (demands knowledge of a rather 
complex API instead of simple tagging a field and looking at the IDE's code 
completion proposals).

So my proposal would be to have both ways and let the developer decide. For 
daily use the annotation is best. For complex and seldom cases Producer 
methods are best. I do not see that it is a general, mutual-exclusive API 
decision, but a use-case driven API usage decision.

> @QuerySingleResult
> ------------------
>
>                 Key: JPA_SPEC-50
>                 URL: http://java.net/jira/browse/JPA_SPEC-50
>             Project: jpa-spec
>          Issue Type: Sub-task
>            Reporter: mkarg
>            Assignee: ldemichiel
>
> New annotation "@QuerySingleResult(ejbql = "JPAQL QUERY" | namedQuery = 
> "name of query")" should inject the .getSingleResult() output of either a 
> given JPAQL query or of a named query into a field annotated with this 
> annotation.
> This is often needed in business applications, for example if the written 
> data is dependend of a aggregate other entities. This is what a trigger 
> would do in databases.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://java.net/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


[jpa-spec issues] [JIRA] Commented: (JPA_SPEC-50) @QuerySingleResult

ldemichiel (JIRA) 04/05/2013

<Possible follow-up(s)>

[jpa-spec issues] [JIRA] Commented: (JPA_SPEC-50) @QuerySingleResult

mkarg (JIRA) 04/05/2013
 
 
Close
loading
Please Confirm
Close