Entiendo que se ha hecho la misma pregunta antes aquí, pero no he podido encontrar la solución a mi problema. Básicamente, estoy tratando de usar JPA a través de Hibernate en Spring, pero los datos son no persistiendo por algún motivo. Activar la depuración en la transacción de primavera no revela nada - EntityManager abierto y cerrado, pero no aparece nada en lo que concierne al administrador de transacciones ... Estoy seguro de que echo de menos algo grande, ¡cualquier ayuda es apreciada! mira lo siguiente para más detalles.Spring + JPA @Transactional no confirma
TIA
Oliver
El diseño básico es el siguiente: Clase FooDaoJPA
‘s función de ahorro de llama entityManager.persist(object)
a conservar el objeto.
clase FooServiceImpl
implementa la interfaz de servicio por:
@Transactional(rollbackFor = DataAccessException.class,
readOnly = false, timeout = 30,
propagation = Propagation.SUPPORTS,
isolation = Isolation.DEFAULT)
public void saveFoo(Foo foo) throws DataAccessException {
fooDao.save(foo);
}
Observó que fooDao
se inyecta por resorte IoC
último controlador se inyecta un FooService
y llaman saveFoo()
para persistir datos.
configuración JPA
<!-- JPA Entity Manager Factory -->
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"
p:dataSource-ref="feDataSource"/>
<!-- Transaction Config -->
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager"
p:entityManagerFactory-ref="entityManagerFactory"/>
<tx:annotation-driven mode="aspectj"
transaction-manager="transactionManager"/>
remove rollbackFor = DataAccessException.class y la llamada de dao surround con try catch para depuración propósito – blob