- Timestamp:
- 04/07/08 14:31:55 (9 months ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
openmrs/trunk/src/api/org/openmrs/api/db/hibernate/HibernateObsDAO.java
r3685 r3847 44 44 import org.openmrs.Person; 45 45 import org.openmrs.api.ObsService; 46 import org.openmrs.api.context.Context;47 46 import org.openmrs.api.db.DAOException; 48 47 import org.openmrs.api.db.ObsDAO; … … 54 53 55 54 /** 56 * @author bwolfe 55 * 56 * @see org.openmrs.api.db.ObsDAO 57 * @see org.openmrs.api.ObsService 57 58 */ 58 59 public class HibernateObsDAO implements ObsDAO { … … 81 82 */ 82 83 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 89 84 sessionFactory.getCurrentSession().persist(obs); 90 85 } … … 103 98 return (Obs) sessionFactory.getCurrentSession().get(Obs.class, obsId); 104 99 } 105 100 106 101 /** 107 102 * @see org.openmrs.api.db.ObsDAO#findObservations(java.lang.Integer, boolean, java.lang.Integer) … … 160 155 createObs(obs); 161 156 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); 163 167 } 164 168 }