Can you post the stacktrace of the exception you get?

Thanks,
Rick


On Sat, Nov 9, 2013 at 10:27 AM, José Luis Cetina <maxtorz...@gmail.com>wrote:

> Rick in the link that you provide they report the same behavior,  is this a
> bug? Why my list attributes are not mutable after detached? Do you have any
> idea? The only way that i could still workong with openjpa is cloning my
> entire object when i want to modify any list attribute.
>  El 22/10/2013 12:04, "Mark Struberg" <strub...@yahoo.de> escribió:
>
> >
> >
> > Lists we get from query.getResultList() are of course immutable.
> >
> > But if I have an entity which has a @ElementCollection or a @OneToMany
> > List<OtherEntity> then those imo should be mutable. Regardless whether in
> > attached or detached state..
> >
> > It is obvious for @ElementCollections but also for e.g. @OneToMany with
> > CascadeType.ALL.
> >
> > Otherwise entityManager.merge() would not make much sense imo...
> >
> > I was always under the impression that this works perfectly fine, even in
> > detached state. We do not exchange the lists in those entities when we
> > perform a detachment afaik. We only change the StateManager to a
> > DetachedStateManager, but thats's it basically.
> >
> > LieGrue,
> > strub
> >
> >
> >
> >
> > >________________________________
> > > From: Rick Curtis <curti...@gmail.com>
> > >To: users <users@openjpa.apache.org>
> > >Sent: Tuesday, 22 October 2013, 18:30
> > >Subject: Re: Immutable list in entity
> > >
> > >
> > >I don't have a solid answer, but have found a number of posts throughout
> > >the years on markmail[1]. I'm just heading out to lunch, but I'll read
> > >through those sometime later today.
> > >
> > >[1]
> > http://openjpa.markmail.org/search/?q=%22Result+lists+are+read+only%22
> > >
> > >
> > >
> > >On Tue, Oct 22, 2013 at 11:05 AM, José Luis Cetina <
> maxtorz...@gmail.com
> > >wrote:
> > >
> > >> Sorry about String immutable, let my explain me.
> > >>
> > >>  (The entities is just an example for demostrate this)
> > >>
> > >> @Entity
> > >> private MyClass implements Serializable{
> > >>
> > >> private String name="old value";
> > >> @ManyToOne
> > >> private List<Product> products;
> > >> // getters and setters..
> > >> }
> > >>
> > >> Example 1
> > >> 1. Get MyClass entity in a managedbean from and ejb (ejb use a query
> and
> > >> the products attribute is null because is LAZY LOADING).
> > >> 2. inside of the managedbean try to set a new value for name
> > >> myClass.setName("new value); //the value is refreshed from "old value"
> > to
> > >> the new value "new value"
> > >> 3. inside of the managedbean try to set a new list of products like:
> > >>     List<Product> myNewList = new ArrayList<Product>(new Product());
> > >>     //then try to set this new list to the entity, remeber that we are
> > in
> > >> the managedbean and the entity is detached
> > >>     myClass.setProducts(myNewList); // here i set the new list but no
> > >> matter what list of product i set to my entity the list of product
> > remains
> > >> null, like if the list is like readonly
> > >>     myClass.getProducts().size();//i get a nullpointer here
> > >>
> > >> Example 2
> > >> 1. Get MyClass entity in a managedbean from and ejb (ejb use a query
> and
> > >> the products attribute contains N elements (IS NOT EMPTY OR NULL)
> > because
> > >> is EAGER LOADING).
> > >> 2. inside of the managedbean try to set a new value for name
> > >> myClass.setName("new value);  //the value is refreshed from "old
> value"
> > to
> > >> the new value "new value"
> > >> 3. inside of the managedbean try to clear the list of the entity you
> > get an
> > >> exception
> > >>     myClass.getProducts().clear(); // here i get an exception "Result
> > lists
> > >> are read only"
> > >>
> > >>
> > >> I cannot find anywhere in the specification like "results lists have
> to
> > be
> > >> readonly and other values not".
> > >>
> > >> This is why i asked "the list values have to be immutables in an
> entity
> > >> even when the entity is detached?"
> > >>
> > >>
> > >> Then i ask again, why list are read only and any other value not?
> > >>
> > >>
> > >>
> > >>
> > >> 2013/10/22 Albert Lee <allee8...@gmail.com>
> > >>
> > >> > String type is immutable, meaning if you are holding on a reference
> to
> > >> it,
> > >> > it will never be changed even it is "modified" since a new
> > >> object/reference
> > >> > will be created.
> > >> >
> > >> > List type is not immutable, regardless of if it is used in an JPA
> > Entity,
> > >> > either managed or detached.
> > >> >
> > >> > Not sure exactly what you are looking for but an example may be
> > helpful
> > >> > here.
> > >> >
> > >> >
> > >> >
> > >> > On Tue, Oct 22, 2013 at 9:27 AM, José Luis Cetina <
> > maxtorz...@gmail.com
> > >> > >wrote:
> > >> >
> > >> > > Hi, i want to know if the default openjpa behavior about list
> > >> attributes
> > >> > in
> > >> > > an entity
> > >> > >
> > >> > > When i retrieve and entity (that has list values) and detached it
> > from
> > >> em
> > >> > > and then return (from ejb) to my web tier (jsf app), the list
> values
> > >> are
> > >> > > immutable but other object are mutables like strings, I cannot
> find
> > in
> > >> > the
> > >> > > specification if this is the expected behavior, the list values
> > have to
> > >> > be
> > >> > > immutables in an entity even when the entity is detached?
> > >> > >
> > >> > > Thanks
> > >> > >
> > >> >
> > >> >
> > >> >
> > >> > --
> > >> > Albert Lee.
> > >> >
> > >>
> > >>
> > >>
> > >> --
> > >> -------------------------------------------------------------------
> > >> *SCJA. José Luis Cetina*
> > >> -------------------------------------------------------------------
> > >>
> > >
> > >
> > >
> > >--
> > >*Rick Curtis*
> > >
> > >
> >
>



-- 
*Rick Curtis*

Reply via email to