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);
}