Downloads Documentation Community Contribute Demo






Show Sidebar
Login | Register
Show
Ignore:
Timestamp:
04/07/08 14:31:55 (9 months ago)
Author:
bwolfe
Message:

Merging obs_group branch to trunk [3438]:[3843]

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • openmrs/trunk/src/api/org/openmrs/api/db/hibernate/HibernateObsDAO.java

    r3685 r3847  
    4444import org.openmrs.Person; 
    4545import org.openmrs.api.ObsService; 
    46 import org.openmrs.api.context.Context; 
    4746import org.openmrs.api.db.DAOException; 
    4847import org.openmrs.api.db.ObsDAO; 
     
    5453 
    5554/** 
    56  * @author bwolfe 
     55 *  
     56 * @see org.openmrs.api.db.ObsDAO 
     57 * @see org.openmrs.api.ObsService 
    5758 */ 
    5859public class HibernateObsDAO implements ObsDAO { 
     
    8182         */ 
    8283        public void createObs(Obs obs) throws DAOException { 
    83                 if (obs.getCreator() == null) 
    84                         obs.setCreator(Context.getAuthenticatedUser()); 
    85  
    86                 if (obs.getDateCreated() == null) 
    87                         obs.setDateCreated(new Date()); 
    88  
    8984                sessionFactory.getCurrentSession().persist(obs); 
    9085        } 
     
    10398                return (Obs) sessionFactory.getCurrentSession().get(Obs.class, obsId); 
    10499        } 
    105  
     100         
    106101        /** 
    107102         * @see org.openmrs.api.db.ObsDAO#findObservations(java.lang.Integer, boolean, java.lang.Integer) 
     
    160155                        createObs(obs); 
    161156                else { 
    162                         obs = (Obs) sessionFactory.getCurrentSession().merge(obs); 
     157                        if (obs.hasGroupMembers()) { 
     158                                // hibernate has a problem updating child collections 
     159                                // if the parent object was already saved so we do it  
     160                                // explicitly here 
     161                                for (Obs member : obs.getGroupMembers()) 
     162                                        if (member.getObsId() == null) 
     163                                                updateObs(member); 
     164                        } 
     165                         
     166                        Obs o = (Obs)sessionFactory.getCurrentSession().merge(obs); 
    163167                } 
    164168        }