You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@openjpa.apache.org by "Patrick Linskey (JIRA)" <ji...@apache.org> on 2007/03/05 19:39:50 UTC

[jira] Commented: (OPENJPA-162) @OrderBy on @OneToMany does not allow ordering by @Id value

    [ https://issues.apache.org/jira/browse/OPENJPA-162?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12478122 ] 

Patrick Linskey commented on OPENJPA-162:
-----------------------------------------

I believe that the issue is that the field is not in the current fetch configuration; i.e., it's a lazy relationship. The ID field will clearly be part of the instance that is selected , but when you're selecting Messages, not Threads (or whatever it is that contains Messages).

What happens if you just say '@OrderBy' and leave out the string argument? According to 9.1.28 of the spec, if you just specify @OrderBy and nothing else, the ordering will be ascending by the pk of the associated records, which happens to be what you want.

> @OrderBy on @OneToMany does not allow ordering by @Id value
> -----------------------------------------------------------
>
>                 Key: OPENJPA-162
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-162
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 0.9.6
>         Environment: Using PostgreSQL 8.1 as the database
>            Reporter: Nick Johnson
>
> Using the following annotation:
>    @OneToMany(mappedBy="root", fetch=FetchType.LAZY)
>     @OrderBy("objectId ASC")
>     private List<Message> messages;
> I get the exception "Cannot order "net.spatula.tally_ho.model.MessageRoot.messages" on "objectId", because that field is not in the default fetch group.  You can only order on fields that will be selected when the related object is loaded."
> I should certainly hope that the primary key of the related object is going to be selected when the object is loaded:
>     @Id
>     @Column(name = "object_id")
>     private long objectId;

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.