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*