Puisque vous avez défini vos transactions Spring via @Transactional , vous exécutez par défaut une transaction à validation automatique. Selon cet autre fil, vous devez créer une deuxième usine de session qui s'exécute dans autocommit = false pour récupérer le fichier.
De plus, le DAO pour la récupération doit être annoté avec @Qualifier afin qu'il sache quelle usine de session utiliser. Exemple :
@Autowired
public MyDAOImpl(@Qualifier("someSessionFactory") SessionFactory sessionFactory) {
setSessionFactory(sessionFactory);
}