Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[eclipselink-users] Questions about Spring @Transactional annotation and EM's

So I've finally gotten a few free seconds to start looking at Spring
and JPA/EclipseLink again, and have started to run into some curious

In this example I have a DAO that has 2 methods and an EM injected like this:
private EntityManager entityManager;


@Transactional(propagation = Propagation.REQUIRED)
delete(Object entity)

So in my controller I inject the dao, then do something like this:

Entity e = dao.find(..)

EclipseLink cries and says it can't delete an unmanaged entity :/

So apparently I'm confused about what exactly is happening when I use
this @Transactional annotation. Admittedly I didn't read the docs too
thoroughly, so I'm not surprised. My options are to do the find/delete
in one @Transactional method or call a merge inside my dao's delete
method. But I don't understand why I'm getting a (different?) em even
though I'm using the same dao, in the same request. Does
@Transactional do something funky with the em? Does it not guarantee
the same one?

Thanks and don't be afraid to reply with RTFM :)

Back to the top