I'm having trouble getting my head around Java EE, transactions & lazy loading & I was wondering if anyone could be kind enough to help me get things straight in my head. It's something I've never quite got right. I'll try & keep the code samples in this email short, but I'll add links to fuller examples at the end. Sorry if this was better on say the OpenJPA Users list.
I've got a piece of code that retrieves a `User` from the Database, performs some validation on it & then attempts to create another DB object called `StoredCookie` if that validation passes. So imagine something like: Now I'm having two separate troubles depending how I do things. The first issue is that the User object u is being detached after the call to findByEmail. The customer property of user is defined using a FetchTYpe of LAZY & I believe this combined with my use of TransactionAttributeType.REQUIRED at class level on my DAO's, is what is causing the entity to come back detached. So I've got over this hurdle by adding a TransactionAttributeType of NEVER to any find methods. This seems to leave the user object detached. Although this is what I want, I don't think I'm doing things right as it's probably causing issue #2. The second issue comes about when I call storedCookieDAO.persist(...). It gives me a message saying that "The given instance "com.oobjects.sso.model.User-252" is not managed by this context". The user is still attached to something, as I can fetch lazily fetched properties. But as the UserDAO & StoredCookieDAO shared an entity manager (checked the hash codes to make sure they are the same), I'm a little confused as to what they are attached to. Does anyone know what I'd need to do allow my StoredCookie to be persisted? What is the User object attached to that's preventing it being persisted by another DAO using the same entity manager? Here are a few code samples of how I am attempting various bits: https://gist.github.com/LTheobald/6248694 <https://gist.github.com/LTheobald/6248694> Thanks for any help anyone can give, Lee -- View this message in context: http://openejb.979440.n4.nabble.com/Java-EE-transactions-lazy-loading-tp4664670.html Sent from the OpenEJB User mailing list archive at Nabble.com.
