Hi, > Is there a way to prohibit direct updates to a perisistent Collection?
What exactly happens if you wrap the list as unmodifiable as follows? @ManyToMany (mappedBy="ownerSide", fetch=FetchType.LAZY, cascade=CascadeType.PERSIST) private List<MyPcObject> myPcList; List<Promotion> getMyPcList() { if (myPcList == null) myPcList = new ArrayList<MyPcObject>(); return Collections.unmodifiableList(myPcList); } OpenJPA proxies the collections and it is possible to tune these proxies including tracking changes them [1]. But that will involve more work from the application. [1] http://openjpa.apache.org/builds/latest/docs/manual/manual.html#ref_guide_pc_scos_proxy_custom I am trying to provide JPA persistent objects in a framework. If I return a ManyToMany Collection the user has to understand what side is the mappedBy owner and be careful to update both sides. There are other reasons for wanting to restrict updates to OneToMany relations. Is there a way to prohibit direct updates to a perisistent Collection? @ManyToMany (mappedBy="ownerSide", fetch=FetchType.LAZY, cascade=CascadeType.PERSIST) private List<MyPcObject> myPcList; List<Promotion> getMyPcList() { if (myPcList == null) myPcList = new ArrayList<MyPcObject>(); return myPcList; } I tried wrapping the List in a Collections.unmodifiableList(list) but it looks like OpenJPA can replace the List with another object so the List I wrapped becomes stale. (Does that make sense by the way - should I expect that to happen?) Any suggestions would be appreciated! - Paul ----- Pinaki Poddar http://ppoddar.blogspot.com/ http://www.linkedin.com/in/pinakipoddar OpenJPA PMC Member/Committer JPA Expert Group Member -- View this message in context: http://n2.nabble.com/Pattern-for-unmodifiable-Collections-tp2600278p2604302.html Sent from the OpenJPA Users mailing list archive at Nabble.com.