Index: src/api/org/openmrs/logic/db/hibernate/HibernateLogicEncounterDAO.java =================================================================== --- src/api/org/openmrs/logic/db/hibernate/HibernateLogicEncounterDAO.java (revision 22005) +++ src/api/org/openmrs/logic/db/hibernate/HibernateLogicEncounterDAO.java (working copy) @@ -33,9 +33,9 @@ import org.hibernate.criterion.Restrictions; import org.openmrs.Cohort; import org.openmrs.Encounter; +import org.openmrs.logic.Duration; import org.openmrs.logic.LogicContext; import org.openmrs.logic.LogicCriteria; -import org.openmrs.logic.Duration; import org.openmrs.logic.LogicException; import org.openmrs.logic.LogicExpression; import org.openmrs.logic.LogicExpressionBinary; @@ -49,6 +49,7 @@ import org.openmrs.logic.util.LogicExpressionToCriterion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; /** * This class builds the hibernate statements needed to execute logic evaluations for the @@ -346,6 +347,7 @@ * @see org.openmrs.api.db.EncounterDAO#getEncounters(org.openmrs.Patient, org.openmrs.Location, * Date, Date, java.util.Collection, java.util.Collection, java.util.Collection, boolean) */ + @Transactional(readOnly=true) public List getEncounters(Cohort who, LogicCriteria logicCriteria, LogicContext logicContext) throws LogicException { return logicToHibernate(logicCriteria.getExpression(), who, logicContext); Index: src/api/org/openmrs/logic/db/hibernate/HibernateLogicObsDAO.java =================================================================== --- src/api/org/openmrs/logic/db/hibernate/HibernateLogicObsDAO.java (revision 22005) +++ src/api/org/openmrs/logic/db/hibernate/HibernateLogicObsDAO.java (working copy) @@ -51,6 +51,7 @@ import org.openmrs.logic.util.LogicExpressionToCriterion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; /** * @@ -371,6 +372,7 @@ * @see org.openmrs.api.db.ObsDAO#getObservations(List, List, List, List, List, List, List, * Integer, Integer, Date, Date, boolean) */ + @Transactional(readOnly=true) public List getObservations(Cohort who, LogicCriteria logicCriteria, LogicContext logicContext) throws LogicException { log.debug("*** Reading observations ***"); return logicToHibernate(logicCriteria.getExpression(), who, logicContext); @@ -381,6 +383,7 @@ */ @SuppressWarnings("unchecked") @Override + @Transactional(readOnly=true) public List getAllQuestionConceptIds() { Query query = sessionFactory.getCurrentSession().createQuery("select conceptId from Concept where datatype.uuid != :naUuid"); query.setString("naUuid", ConceptDatatype.N_A_UUID); Index: src/api/org/openmrs/logic/db/hibernate/HibernateLogicPatientDAO.java =================================================================== --- src/api/org/openmrs/logic/db/hibernate/HibernateLogicPatientDAO.java (revision 22005) +++ src/api/org/openmrs/logic/db/hibernate/HibernateLogicPatientDAO.java (working copy) @@ -36,6 +36,7 @@ import org.openmrs.logic.util.LogicExpressionToCriterion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; /** * @@ -132,6 +133,7 @@ * @throws LogicException * @see org.openmrs.api.db.PatientDAO#getPeople(String, Boolean) */ + @Transactional(readOnly=true) public List getPatients(Collection patientIds, LogicCriteria logicCriteria) throws LogicException { return logicToHibernate(logicCriteria.getExpression(), patientIds); } Index: src/api/org/openmrs/logic/db/hibernate/HibernateLogicPersonDAO.java =================================================================== --- src/api/org/openmrs/logic/db/hibernate/HibernateLogicPersonDAO.java (revision 22005) +++ src/api/org/openmrs/logic/db/hibernate/HibernateLogicPersonDAO.java (working copy) @@ -36,6 +36,7 @@ import org.openmrs.logic.util.LogicExpressionToCriterion; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Repository; +import org.springframework.transaction.annotation.Transactional; /** * @@ -141,6 +142,7 @@ * @throws LogicException * @see org.openmrs.api.db.PersonDAO#getPeople(String, Boolean) */ + @Transactional(readOnly=true) public List getPersons(Collection personIds, LogicCriteria logicCriteria) throws LogicException { return logicToHibernate(logicCriteria.getExpression(), personIds); }