Changeset 2577
- Timestamp:
- 07/01/08 20:37:56 (5 months ago)
- Files:
-
- 1 modified
Legend:
- Unmodified
- Added
- Removed
-
trunk/components/server/src/ome/services/query/PojosGetImagesByOptionsQueryDefinition.java
r2016 r2577 14 14 import ome.model.core.Image; 15 15 import ome.parameters.Parameters; 16 import ome.tools.hibernate.QueryBuilder; 16 17 import ome.util.builders.PojoOptions; 17 18 18 import org.hibernate.Criteria;19 19 import org.hibernate.HibernateException; 20 20 import org.hibernate.Session; 21 import org.hibernate.criterion.Restrictions;22 21 23 22 public class PojosGetImagesByOptionsQueryDefinition extends Query { … … 32 31 protected void buildQuery(Session session) throws HibernateException, 33 32 SQLException { 34 Criteria c = session.createCriteria(Image.class);35 c.createAlias("details.creationEvent", "create");36 c.createAlias("details.updateEvent", "update");37 c.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);38 33 39 Criteria pix = c.createCriteria("pixels", LEFT_JOIN); 40 pix.createCriteria("pixelsType", LEFT_JOIN); 41 pix.createCriteria("pixelsDimensions", LEFT_JOIN); 34 // TODO copied from PojosGetImagesQueryDefinition. Should be merged. 35 QueryBuilder qb = new QueryBuilder(256); 36 qb.select("img"); 37 qb.from("Image", "img"); 38 qb.join("img.details.creationEvent", "ce", true, true); 39 qb.join("img.details.updateEvent", "ue", true, true); 40 qb.join("img.pixels", "pix", true, true); 41 qb.join("pix.pixelsType", "pt", true, true); 42 qb.join("pix.pixelsDimensions", "pd", true, true); 43 qb.join("img.annotationLinksCountPerOwner", "i_c_ann", true, true); 44 // qb.join("img.datasetLinksCountPerOwner", "i_c_ds", true, true); 45 46 qb.where(); 42 47 43 48 // if PojoOptions sets START_TIME and/or END_TIME 44 49 if (check(OPTIONS)) { 45 50 PojoOptions po = new PojoOptions((Map) value(OPTIONS)); 46 47 51 if (po.getStartTime() != null) { 48 c.add(Restrictions.gt("create.time", po.getStartTime())); 52 qb.and("img.details.creationEvent.time > :starttime"); 53 qb.param("starttime", po.getStartTime()); 49 54 } 50 55 if (po.getEndTime() != null) { 51 c.add(Restrictions.lt("create.time", po.getEndTime())); 56 qb.and("img.details.creationEvent.time < :endtime"); 57 qb.param("endtime", po.getEndTime()); 52 58 } 53 59 } 54 60 55 set Criteria(c);61 setQuery(qb.query(session)); 56 62 } 57 63
