For me the code looks good.
What do you need the Provider<EntityManger> for?
To test if the @Transactional has an effect or not you can place a
breakpoint in JpaLocalTxnInterceptor in the method invoke(). If your
code hits this method a transaction will be started (if non is
already running).
On 09/19/2012 06:16 PM, Johannes wrote:
Hi,
I have followed the advise
on http://code.google.com/p/google-guice/wiki/JPA and it seems
to work when I set @Transactional directly on my DAO. However, I
have trouble implementing this in a transaction-per-request
fashion. My first attempt is to use a filter:
@Transactional
class TransactionFilter implements Filter {
final Provider<EntityManager> entityManager;
@Inject
public
TransactionFilter(Provider<EntityManager> entityManager)
{
this.entityManager = entityManager;
}
@Transactional
@Override
public void
doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException {
arg2.doFilter(arg0, arg1);
}
Bound AFTER:
filter("/*").through(PersistFilter.class);
in my module. It just does not seem to have an effect.
How do people ensure one transaction per request in a servlet
environment ?
Kind regards
Johannes
--
You received this message because you are subscribed to the Google
Groups "google-guice" group.
To view this discussion on the web visit https://groups.google.com/d/msg/google-guice/-/EJByN5WHgnIJ.
To post to this group, send email to
[email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/google-guice?hl=en.
--
You received this message because you are subscribed to the Google Groups "google-guice" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to [email protected].
For more options, visit this group at http://groups.google.com/group/google-guice?hl=en.
|