Im Frühjahr verwaltete Transaktionen ohne @Transactional-Annotation

Ich verwende Spring-Annotationen, um meine Transaktionen wie folgt zu verwalten:

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

     private AlertDAO alertDAO;

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

}

Ich frage mich, was passiert, wenn ich die Anmerkung vergesse:

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

}

Wenn die alertDAO-Implementierung folgt:

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

}

Hibernate ermöglicht es mir anscheinend, Daten aus der Datenbank abzurufen, auch ohne die Annotation.

Was sind die Folgen dieser Art von Nachlässigkeit und was sind die schlimmsten möglichen Szenarien?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage