qb.select(mapKey, agg + "(" + field + ")").append(query); qb.append(" group by " + mapKey); qb.params(params);
@RolesAllowed("user") public Long aggByQuery(String agg, String field, String query, Parameters params) { if (!AGGS.matcher(agg).matches()) { throw new ValidationException(agg + " does not match " + AGGS); } if (!FIELD.matcher(field).matches()) { throw new ValidationException(field + " does not match " + FIELD); } final QueryBuilder qb = new QueryBuilder(); qb.select(agg + "("+field+")").append(query); qb.params(params); return (Long) getHibernateTemplate().execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException, SQLException { return qb.query(session).uniqueResult(); } }); }
Session session = session(); QueryBuilder qb = new QueryBuilder(); qb.select("share.id"); qb.from("ShareMember", "sm"); qb.join("sm.parent", "share", false, false);
@Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { QueryBuilder qb = new QueryBuilder(); qb.select("f"); qb.from("FileAnnotation", "fa"); qb.join("fa.file", "f", false, false); qb.where(); qb.and("fa.id = :id"); qb.param("id", annotationId); OriginalFile file = (OriginalFile) qb.query(session) .uniqueResult(); if (file == null) { throw new ome.conditions.ApiUsageException("No such file annotation: " + annotationId); } return file.getId(); } }) {
protected IObject get(Session session, Class type, long id) { QueryBuilder qb = new QueryBuilder(); qb.select("this").from(type.getName(), "this"); if (IAnnotated.class.isAssignableFrom(type)) { qb.join("this.annotationLinks", "l1", true, true); qb.join("l1.child", "a1", true, true); qb.join("a1.annotationLinks", "l2", true, true); qb.join("l2.child", "a2", true, true); } if (!IGlobal.class.isAssignableFrom(type)) { if (IMutable.class.isAssignableFrom(type)) { qb.join("this.details.updateEvent", "update", false, true); } qb.join("this.details.creationEvent", "create", false, true); qb.join("this.details.owner", "owner", false, true); qb.join("this.details.group", "group", false, true); } qb.where().and("this.id = :id"); qb.param("id", id); return (IObject) qb.query(session).uniqueResult(); } }
@RolesAllowed("user") public List<Long> getLeaderOfGroupIds(final Experimenter e) { Assert.notNull(e); Assert.notNull(e.getId()); final QueryBuilder qb = new QueryBuilder(); qb.select("g.id").from("ExperimenterGroup", "g"); qb.join("g.groupExperimenterMap", "m", false, false); qb.where(); qb.and("m.owner = true"); qb.and("m.parent.id = g.id"); qb.and("m.child.id = :id"); qb.param("id", e.getId()); List<Long> groupIds = iQuery.execute(new HibernateCallback<List<Long>>() { public List<Long> doInHibernate(Session session) throws HibernateException, SQLException { org.hibernate.Query q = qb.query(session); return (List<Long>) q.list(); } }); return groupIds; }
qb.select("i"); qb.from("Image", "i"); qb.join("i.details.owner", "owner", true, true);
@Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { final Filter f = filter(opts); final QueryBuilder qb = new QueryBuilder(); qb.select("distinct r").from("Roi", "r"); qb.join("r.image", "i", false, false); qb.join("r.shapes", "shapes", false, true); // fetch qb.join("r.folderLinks", "folderLinks", true, true); // fetch qb.join("folderLinks.parent", "folder", true, true); // fetch qb.where(); qb.and("i.id = :id"); qb.filter("r", f); qb.filterNow(); qb.order("r.id", true); // ascending qb.param("id", imageId); return qb.queryWithoutFilter(session).list(); } }));
private OriginalFile getScriptId(final Job job, final Ice.Current current) throws omero.ValidationException { final QueryBuilder qb = new QueryBuilder(); qb.select("o").from("Job", "j"); qb.join("j.originalFileLinks", "links", false, false); qb.join("links.child", "o", false, false); qb.where(); qb.and("j.id = :id").param("id", job.getId().getValue()); scriptRepoHelper.buildQuery(qb); final Map<String, String> ctx = new HashMap<String, String>(); ctx.putAll(current.ctx); ctx.put("omero.group", "-1"); final OriginalFile f = (OriginalFile) this.ex.execute(ctx, this.principal, new Executor.SimpleWork(this, "getScriptId") { @Transactional(readOnly = true) public Object doWork(org.hibernate.Session session, ServiceFactory sf) { return qb.query(session).uniqueResult(); } }); if (f == null) { throw new omero.ValidationException(null, null, "No script for job :" + job.getId().getValue()); } return f; }
/** * Build a query string based on the current {@link #excludes} {@link List}. * The query expects a single :id parameter to be set on execution. The * {@link #excludes} list is used to filter out unwanted {@link EventLog} * instances. */ private void initQueryString() { List<String> copy = excludes; // Instead of synchronizing QueryBuilder qb = new QueryBuilder(); qb.select("el"); qb.from("EventLog", "el"); qb.where(); qb.and("el.id > :id"); if (copy != null) { for (String exclude : copy) { qb.and("el.entityType != '" + exclude + "'"); } } qb.order("id", true); query = qb.queryString(); }
qb.select("share.id","count(distinct sal)"); qb.from("ShareMember", "sm"); qb.join("sm.parent", "share", false, false);
/** * Method to get the original file of the script with id. This method will * not throw an exception, but instead will return null. * * @param name * See above. * @return original file or null if script does not exist or more than one * script with name exists. */ private OriginalFile getOriginalFileOrNull(long id, final Ice.Current current) { try { final QueryBuilder qb = new QueryBuilder(); qb.select("o").from("OriginalFile", "o"); qb.where(); scripts.buildQuery(qb); qb.and("o.id = :id"); qb.param("id", id); OriginalFile file = (OriginalFile) factory.executor.execute( current.ctx, factory.principal, new Executor.SimpleWork(this, "getOriginalFileOrNull", id) { @Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { return qb.query(session).uniqueResult(); } }); return file; } catch (RuntimeException re) { return null; } }
public Object call() throws Exception { final QueryBuilder qb = new QueryBuilder(); qb.select("o").from("OriginalFile", "o"); if (!parseAcceptsList(qb, acceptsList)) { long gid = factory.sessionManager .getEventContext(factory.principal) .getCurrentGroupId(); qb.and("o.details.group.id = " + gid); } List<Long> officialIds = scripts.idsInDb(); if (officialIds != null && officialIds.size() > 0) { qb.and("o.id not in (:ids) "); qb.paramList("ids", officialIds); } List<OriginalFile> files = (List<OriginalFile>) factory.executor.execute(__current.ctx, factory.principal, new Executor.SimpleWork(this, "getUserScripts") { @Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { return qb.query(session).list(); } }); IceMapper mapper = new IceMapper(); return mapper.map(files); } });
qb.select("target.textValue"); qb.from("AnnotationAnnotationLink", "link"); if (byTagForGroups) {
public Object call() throws Exception { final boolean official = acceptsList != null && acceptsList.size() == 0; final QueryBuilder qb = new QueryBuilder(); qb.select("o").from("Job", "j"); qb.join("j.originalFileLinks", "links", false, false); qb.join("links.child", "o", false, false); parseAcceptsList(qb, acceptsList); qb.and("j.id = :id"); qb.param("id", j.getId().getValue()); OriginalFile file = (OriginalFile) factory.executor.execute(__current.ctx, factory.principal, new Executor.SimpleWork(this, "validateScript", j.getId().getValue(), acceptsList) { @Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { List<OriginalFile> files = (List<OriginalFile>) qb.query(session).list(); if (files.size() != 1) { throw new ome.conditions.ValidationException("Found wrong number of files: " + files); } Long id = files.get(0).getId(); if (official) { return scripts.load(id, session,getSqlAction(), true); } else { return sf.getQueryService() .get(OriginalFile.class, id); } } }); return new IceMapper().map(file); } });
@Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { QueryBuilder qb = new QueryBuilder(); qb.select("distinct fa"); qb.from("Image", "i"); qb.append(", Roi roi "); qb.join("roi.annotationLinks", "rlinks", false, false); qb.join("rlinks.child", "rfa", false, false); qb.join("i.wellSamples", "ws", false, false); qb.join("ws.well", "well", false, false); qb.join("well.plate", "plate", false, false); qb.join("plate.annotationLinks", "links", false, false); qb.join("links.child", "fa", false, false); qb.where(); qb.and("fa.ns = '" + NSMEASUREMENT.value + "'"); qb.and("rfa.id = fa.id"); qb.and("i.id = :id"); qb.and("i.id = roi.image"); qb.param("id", imageId); qb.filter("fa", filter(opts)); return qb.query(session).list(); } }));
@Transactional(readOnly = true) public Object doWork(Session session, ServiceFactory sf) { final Filter f = filter(opts); final QueryBuilder qb = new QueryBuilder(); qb.select("distinct r").from("Roi", "r"); qb.join("r.shapes", "s", false, true); // fetch qb.join("r.folderLinks", "folderLinks", true, true); // fetch qb.join("folderLinks.parent", "folder", true, true); // fetch qb.join("r.image", "i", false, false); qb.where(); qb.and("i.id = :id"); qb.and(" ( s.theZ is null or s.theZ = :z ) "); qb.and(" ( s.theT is null or s.theT = :t ) "); qb.filter("r", f); qb.filterNow(); qb.order("r.id", true); // ascending qb.param("id", imageId); qb.param("z", z); qb.param("t", t); return qb.queryWithoutFilter(session).list(); } }));
qb.select("g"); qb.from("ExperimenterGroup", "g"); qb.join("g.groupExperimenterMap","m",true, true);
qb.select("img"); qb.from("Image", "img"); qb.join("img.details.creationEvent", "ce", true, true);