private QueryBuilder _where(String bool, String str) { where(); // check size and set current whereCount++; if (whereCount != 1) { where.append(bool); } where.append(str); appendSpace(); return this; }
qb.from("ShareMember", "sm"); qb.join("sm.parent", "share", false, false); qb.where(); qb.and("sm.child.id = :userId"); qb.param("userId", userId);
@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(); } }) {
@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; }
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(); } }
@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(); } }));
qb.join("i.details.owner", "owner", true, true); qb.join("i.details.group", "group", true, true); qb.where(); qb.and("i.acquisitionDate > :start "); qb.param("start", new Timestamp(start.getValue()));
qb.from("ShareMember", "links2"); qb.join("links2.parent","share2", false, false); qb.where(); qb.paramList("ids", shareIds); qb.and("share2.id in (:ids) and share2.id in "); sub.join("memberLinks.parent", "share", false, false); sub.join("memberLinks.child", "user", false, false); sub.where(); sub.and("1=1"); // WORKAROUND for ticket:1239 for root applyIfShareAccessible(sub);
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; }
qb.join("sal.child", "comment", false, false); qb.join("sm.child", "user", false, false); qb.where(); qb.and("share.id in (:ids)"); qb.paramList("ids", ids);
private boolean parseAcceptsList(final QueryBuilder qb, final List<IObject> acceptsList) { qb.where(); scripts.buildQuery(qb); if (acceptsList != null && acceptsList.size() > 0) { for (IObject object : acceptsList) { if (object instanceof Experimenter) { qb.and("o.details.owner.id = :oid"); qb.param("oid", object.getId().getValue()); } else if (object instanceof ExperimenterGroup) { qb.and("o.details.group.id = :gid"); qb.param("gid", object.getId().getValue()); } else { throw new ome.conditions.ValidationException( "Unsupported accept-type: " + object); } } return true; } return false; }
/** * 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(); }
true); qb.where(); for (int i = 0; i < fetchAnnotationsCopy.size(); i++) { qb.and("fetchannchild" + i + ".class = "
/** * 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; } }
qb.join("link.child", "source", false, false); qb.where(); qb.and("source.class = TagAnnotation"); qb.and("target.class = TagAnnotation");
@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.join("g.groupExperimenterMap","m",true, true); qb.join("m.child","user", true,true); qb.where();