I wound up taking your first suggestion, using a List instead of a Set. Actually, I was already flirting with the idea but was afraid I would break all kinds of stuff. Sure enough upon thoroughly testing the app I saw some broken stuff - duplicates in lists (which Sets don't allow), broken PropertyEditor binders (that previously bound to Set), etc.
But it seems to be working now. Thanks for the help! Bob Youssef Mohammed wrote: > > Set , by definition, has no particular order for its elements. > You'd better use *List* , with [EMAIL PROTECTED] , you get and ordered list. > > > Regards, Youssef > > > On Thu, Nov 20, 2008 at 5:51 PM, syg6 <[EMAIL PROTECTED]> wrote: > >> >> I have a @OneToMany Collection (EstablishmentBins) in my POJO >> (Establishment), mapped as a Set. I've tried using LinkedHashSet and >> TreeSet, no go, Hibernate says I can't. Ok, fair enough. >> >> But since it is a plain old Set there is no order. And I need some order. >> So >> I changed my EstablishmentBin POJO so it implements Comparable and made a >> compareTo() method. That's when the problems started. >> >> When loading an Establishment in EstablishmentDaoHibernate, If I futz >> with >> EstablishmentBins - for example cast it to a TreeSet and do an >> establishment.setEstablishmentBins(establishmentBinsTreeSet), Hibernate >> complains saying: >> >> A collection with cascade="all-delete-orphan" was no longer referenced by >> the owning entity instance >> >> I also tried: >> >> 1. Casting the Set to a TreeSet, calling clear() on the Set and then >> calling >> addAll(TreeSet). This doesn't work because at the end of the day, the >> POJO >> still has a Set, so any ordering I do is lost. >> >> 2. Making a private method, orderBins(TreeSet) in Establishment that >> either >> does the stuff from #1 (clear(), addAll(TreeSet)) or from above >> (this.setEstablishmentBins(establishmentBinsTreeSet)). Neither one works. >> The first one does nothing, the second fails with the same Hibernate >> error. >> >> So I moved the setEstablishmentBins(establishmentBinsTreeSet) call up >> into >> the EstablishmentFormController. Annoying, and probably not a Best >> Practice. >> But it works. I am not sure why it works in a Controller and not a Dao, >> but >> there it is. >> >> But I have another problem - I sometimes load the Establishment from >> Ajax, >> and I need the EstablishmentBins to be ordered there as well. But I have >> no >> Controller, I call the Manager/DAO directly. So it seems I *need* to put >> the >> code for ordering the EstablishmentBins in the DAO, at least for this >> call. >> >> How the heck can I do this without Hibernate getting cross with me? >> >> Bob >> -- >> View this message in context: >> http://www.nabble.com/Hibernate-madness---how-to-order-a-Set-tp20604234s2369p20604234.html >> Sent from the AppFuse - User mailing list archive at Nabble.com. >> >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [EMAIL PROTECTED] >> For additional commands, e-mail: [EMAIL PROTECTED] >> >> > > -- View this message in context: http://www.nabble.com/Hibernate-madness---how-to-order-a-Set-tp20604234s2369p20618587.html Sent from the AppFuse - User mailing list archive at Nabble.com. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
