Transactions gérées par Spring sans l'annotation @Transactional

Je suis en utilisant le Printemps des annotations pour gérer mes transactions comme suit:

@Transactional(readOnly = true)
public class AlertServiceImpl implements AlertService {

     private AlertDAO alertDAO;

     public List<Alert> getAlerts(){
         List<Alert> alerts = alertDAO.getAlerts();
         return alerts;
     }

}

Je me demande ce qui se passe si j'oublie l'annotation:

//Oops! Forgot to use transactional annotation 
public class AlertServiceImpl implements AlertService {

    private AlertDAO alertDAO;

    public List<Alert> getAlerts(){
         List<Alert> alerts = alertDAO.getAlerts();
         return alerts;
    }

}

Lorsque le alertDAO mise en œuvre est la suivante:

import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

//no annotation here either
public class HibernateAlertDAO extends HibernateDaoSupport implements AlertDAO {

    public List<Alert> getAlerts(){
         //some implementation details that define queryString

         Query query = getSession().createQuery(queryString);
         List<Alert> alerts = query.list();

         return alerts;
    }

}

Il semble que Hibernate me permet d'extraire des données à partir de la base de données même sans l'annotation.

Quelles sont les conséquences de ce genre de négligence et quels sont les scénarios de la pire éventualité qui pourrait se produire?

source d'informationauteur Jukka Hämäläinen