I didn't open one because I don't know if it's specified in the specs or not. It's possible that that is the normal expected behaviour of lazily fetched detached collections.
> is this worth a JIRA ? > > --- > regards > Marc Logemann > http://www.logemann.org > http://www.logentis.de > > > > > Am 08.04.2009 um 23:50 schrieb Tedman Leung: > >> just as additional information, this is also true about any lazy >> PersistentCollection too. I found that if I accessed the collection >> while >> it is in an attached state the values are available, but as soon as it >> becomes detached the collection becomes null even if I had just >> accessed >> it prior to detachment. >> >> I'm not entirely sure if this is a bug or if it's suppose to work this >> way >> when detached. >> >> On Wed, Apr 08, 2009 at 05:18:48PM +0200, Marc Logemann wrote: >>> Hi, >>> >>> with OpenJPA 1.2.0 i am having some problems detaching attributes >>> which >>> are in a fetch-group. My persistence.xml is: >>> >>> <property name="openjpa.DetachState" value="fetch- >>> groups(DetachedStateField=true)"/> >>> >>> My Domain class header: >>> >>> @FetchGroups({ >>> @FetchGroup(name="posDetail", attributes={ >>> @FetchAttribute(name="deliveryAddresses") >>> }) >>> }) >>> public class Order { >>> >>> @OneToMany(mappedBy = "order", cascade = CascadeType.ALL, fetch = >>> FetchType.LAZY) >>> List<DeliveryAddress> deliveryAddresses; >>> ... >>> } >>> >>> (in fact i also have the @LoadFetchGroup("posDetail") to be >>> sure.....) >>> >>> Now when i am leaving my DAO layer which means that the persistence >>> contexts ends, the delivery address is "null" even though its in the >>> fetch group. I even queried for the fetch group in the DAO before >>> leaving it via: >>> >>> OpenJPAQuery oQuery = OpenJPAPersistence.cast(em.createQuery("select >>> o >>> from Order o where o.oid = ?1")); >>> oQuery.setParameter(1, oid); >>> // >>> oQuery.getFetchPlan().setMaxFetchDepth(3).addFetchGroup("posDetail"); >>> List list = oQuery.getResultList(); >>> if(list != null && list.size() > 0) { >>> return (Order)list.iterator().next(); >>> } >>> >>> I know it must be a detach issue because with the following >>> persistence.xml it works (but i definitely wont use this config in >>> production) >>> >>> <property name="openjpa.DetachState" value="all"/> >>> >>> Am i missing something here? When i debug my DAO, the deliveryAddress >>> attribute is populated but as soon as i leave my DAO, its lost. >>> >>> --- >>> regards >>> Marc Logemann >>> http://www.logemann.org >>> http://www.logentis.de >>> >>> >>> >>> >> >> -- >> Ted Leung >> >> ted...@sfu.ca >> >> I can speak Canadian, American, Australian, and little English. >> > -- Ted Leung ted...@sfu.ca It's time for a new bike when the bulb in your shift light burns out.