Dado que ha definido sus transacciones de Spring a través de @Transactional
, por defecto se está ejecutando dentro de una transacción de confirmación automática. Según este otro hilo, debe crear una segunda fábrica de sesiones que se ejecute en autocommit = false
para recuperar el archivo.
Además, el DAO para la recuperación debe anotarse con @Qualifier
para que sepa qué sesión de fábrica usar. Ejemplo:
@Autowired
public MyDAOImpl(@Qualifier("someSessionFactory") SessionFactory sessionFactory) {
setSessionFactory(sessionFactory);
}