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*