Transações gerenciadas por primavera sem anotação @Transactional

Estou usando anotações do Spring para gerenciar minhas transações da seguinte maneira:

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

     private AlertDAO alertDAO;

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

}

Gostaria de saber o que acontece se eu esquecer a anotação:

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

}

Quando a implementação alertDAO é a seguinte:

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

}

Parece que o Hibernate me permite buscar dados do banco de dados mesmo sem a anotação.

Quais são as consequências desse tipo de descuido e quais são os piores cenários que podem acontecer?

questionAnswers(4)

yourAnswerToTheQuestion