Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [eclipselink-users] JPA 2 @OrderColumn question

Hi Noah,

I saw your suggestion, currently that is above and beyond what is outlined in the JPA spec. Feel free to log an enhancement request though against EclipseLink.

As for the default, I can't speak to all the decisions of the JPA spec committee, but could be in this case that it is valid to not sort some items and have them appended at the end of the list by setting them to null.

Cheers,
Guy

On 07/06/2012 1:01 PM, Noah White wrote:
Hi Guy,

That's unfortunately what I am going to have to do in this case (see my suggestion to the list about EclipseLink using a LinkedHashSet when it sees @OrderColumn applied to a Set). 

BTW, I am surprised that the default value of 'nullable' is true for @OrderColumn.  Why would this column ever contain a NULL?

-Noah

On Jun 7, 2012, at 10:47 AM, Guy Pelletier wrote:

Hi Noah,

Likely not ideal, but you could change your model to use a List with OrderColumn and when adding a favorite desert you'll have to check the List if it already exists.

Cheers,
Guy

On 07/06/2012 10:36 AM, Noah White wrote:

On Jun 7, 2012, at 7:45 AM, Guy Pelletier wrote:

Hi Noah,

Yes, the use of an OrderColumn is currently intended to be used with a List only. You can however use the JPA OrderBy annotation instead which can be used with a Set.

Cheers,
Guy


Hi Guy,

Thanks for your feedback. The rub with the @OrderBy approach is it relies on a column in the related entity, however, I want/need to enforce an ordering on the the relationship.  Some pseudo code to illustrate:

    public class Diner {

@ManyToMany
@JoinTable(...)
Set<Dessert>  favoriteDesserts;

get/set favoriteDesserts

    }

    public class Dessert {

@ManyToMany(mappedBy="favoriteDesserts")
Set<Diner> favoritedBy;

    }

I want to preserve the order that a Dessert is added to the favoriteDesserts. I also want to enforce that the Set of favorite desserts does not contain duplicates.  There is no particular property of Dessert to indicate an favorited order since the favorited order should be part of the join table as it relates to that and is not unique to an instance of Dessert which is why @OrderBy isn't really going to help.

-Noah


On 06/06/2012 5:52 PM, Noah White wrote:

I was reading over the docs [1] regarding Eclipselink's support for @OrderColumn. It looks like this only applies to List and not Set. The reason I ask is because I have a ManyToMany bi-directional relationship (using a join table) which is a Set and is implemented with a HashSet because the collection can't have duplicates.  

I wanted to order the entries in this set using @OrderColumn, but it appears I can only apply this to List, however using List will break my unique requirement.  Is this understanding correct?

If so what is the recommended strategy for this case?

Thanks,

-Noah



_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users

--

<oracle_sig_logo.gif>
Guy Pelletier

ORACLE Canada, 45 O'Connor Street Suite 400 Ottawa, Ontario Canada K1P 1A4

<green-for-email-sig_0.gif> Oracle is committed to developing practices and products that help protect the environment

_______________________________________________
eclipselink-users mailing list
eclipselink-users@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/eclipselink-users


--

<oracle_sig_logo.gif>
Guy Pelletier

ORACLE Canada, 45 O'Connor Street Suite 400 Ottawa, Ontario Canada K1P 1A4

<green-for-email-sig_0.gif> Oracle is committed to developing practices and products that help protect the environment



--

Oracle
Guy Pelletier

ORACLE Canada, 45 O'Connor Street Suite 400 Ottawa, Ontario Canada K1P 1A4

Green
            Oracle Oracle is committed to developing practices and products that help protect the environment


Back to the top