Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] One-to-Many ordered list not ordered when cached

Hi all,

 

I have a one to many mapping where the many objects should be sorted by a query key.

In my Eclipselink workbench I have set the Advanced Container Options to List and java.util.ArrayList.

The descriptor of my “many objects” calls an After Load method that sets useTransparentCollection() and addAscendingOrdering( "listSeqNo" ).

I have a unit test that creates several instances of the “many objects” and they are created with ascending values on the query key (called “listSeqNo”) as expected.

The unit test then commits the transaction and a subsequent unit test then uses the objects, however the items are retrieved from the cache and are no longer in sorted order.

If I later retrieve the same items from the database via a query the items are retrieved in correct order.

I can not find a way to configure the cache to obey the ordering as dictated by the query key.

I have tried removing the addAscendingOrdering() from my After Load method and setting it in the workbench on the one-to-many mapping (Ordering tab), but this did not help.

I have tried not using a transparent collection (in the After Load method), but this did not help.

I tried several combinations in the Advanced Container Options without success, although I have not tried the TreeSet, since it is not trivial to update our code.

 

This is a new problem since migrating from Toplink 2.5.1 (ouch). I have tried everything I can think of to try to get this working.

I am using eclipselink-incubation-1.0M9, Java 1.5 and Oracle 9i.

 

I have found some similar issues but am not sure if they are the same cause, e.g.

http://forums.oracle.com/forums/thread.jspa?messageID=2571698

 

Please help with suggestions or information.

Regards Tim.

 


Back to the top