Is it possible to have spring to inject the JPA entityManager object into my DAO class whitout extending JpaDaoSupport? if yes, does spring manage the transaction in this case?
This is documented black on white in 12.6.3. Implementing DAOs based on plain JPA:
It is possible to write code against
the plain JPA without using any Spring
dependencies, using an injected
EntityManagerFactory
or EntityManager
.
Note that Spring can understand
@PersistenceUnit
and
@PersistenceContext
annotations both
at field and method level if a
PersistenceAnnotationBeanPostProcessor
is enabled. A corresponding DAO
implementation might look like this (...)
And regarding transaction management, have a look at 12.7. Transaction Management:
Spring JPA allows a configured JpaTransactionManager
to expose a JPA transaction to JDBC access code that accesses the same JDBC DataSource, provided that the registered JpaDialect
supports retrieval of the underlying JDBC Connection. Out of the box, Spring provides dialects for the Toplink, Hibernate and OpenJPA JPA implementations. See the next section for details on the JpaDialect
mechanism.