The @Transactional annotation uses aop method interception (see
JpaLocalTxnInterceptor).
This means the annotation works only when all of the following is true:
- The concrete instance was created by Guice and not by anybody else
(other framework or calling new)
- the annotated method is not private
- the annotated method is not final
- the annotated method is not static
In your case I would suspect that maybe the instance was created by
Jersey (and Jersey then passes the instance to Guice for member
injection) and not by Guice itself.
If this doesn't help you may need to post some code or reduce the
problem to a minimal setup for further exploration.
regards
Stephan
On 11/21/2013 12:35 AM, Armin Bahramshahry wrote:
Hi,
I've setup Guice with Jersey, and the PersistFilter. Trying to use
@Transactional annotation, and it seems to be working if the object is
binded in the Singleton scope, or Request scope (from within the
servlet module binding); however, objects that are just binded with
the basic binding (none) they seem to have problem with @Transactional.
Getting the EntityManager seem to work fine, etc, but nothing gets
committed.
Simply moving the binding of the object from the AbstractModule to
ServletModule makes the @Transactional to work as expected. The
@Transactional seem to also work for all objects that are marked as
Singleton.
Was wondering if this is an intended behavior or not, and if not, what
could be causing this?
Regards,
Armin
--
You received this message because you are subscribed to the Google
Groups "google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send
an email to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups
"google-guice" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/google-guice.
For more options, visit https://groups.google.com/groups/opt_out.