Lee, I will let someone else answer your questions, but your test case
reminded me of a BalusC (JSF guru) blog[1] that I visited many months ago.
It does not answer your question, but it is an alternate solution for what
you are already attempting to do...I think. :)
[1] http://balusc.blogspot.com/2007/03/user-session-filter.html
On Fri, Aug 16, 2013 at 6:10 AM, leesy<[email protected]> wrote:
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.