public boolean exists(ID id) { Assert.notNull(id, ID_MUST_NOT_BE_NULL); TypedQuery<Object> existsQuery = cbf.create(entityManager, Object.class) .from(getDomainClass()) // Empty string because SQLServer can't interpret a number properly when using TOP clause .select("''") .where(idAttributeName).eq(id) .setMaxResults(1) .getQuery(); applyRepositoryMethodMetadata(existsQuery, true); try { return !existsQuery.getResultList().isEmpty(); } catch (NoResultException e) { return false; } }
public boolean exists(ID id) { Assert.notNull(id, ID_MUST_NOT_BE_NULL); TypedQuery<Object> existsQuery = cbf.create(entityManager, Object.class) .from(getDomainClass()) // Empty string because SQLServer can't interpret a number properly when using TOP clause .select("''") .where(idAttributeName).eq(id) .setMaxResults(1) .getQuery(); applyRepositoryMethodMetadata(existsQuery, true); try { return !existsQuery.getResultList().isEmpty(); } catch (NoResultException e) { return false; } }
@Override public <T> T findByName(String weblinkGroupName, String prefix, Integer limit, String marker, EntityViewSetting<T, ? extends QueryBuilder<T,?>> setting) { if (limit == null) { limit = 1000; } else if (limit > 1000) { throw new IllegalArgumentException("Limit may not exceed 1000!"); } try { CriteriaBuilder<WeblinkGroup> cb = cbf.create(em, WeblinkGroup.class) .where("id").eq(weblinkGroupName); if (prefix != null && !prefix.isEmpty()) { cb.where("links.id.name").like().value(prefix.replaceAll("%", "\\%") + "%").escape('\\'); } if (marker != null && !marker.isEmpty()) { cb.where("links.id.name").gt(marker); } // TODO: implement constraint and marker in query and also for passing into entity views setting.addOptionalParameter("prefix", prefix); setting.addOptionalParameter("constraint", limit); setting.addOptionalParameter("marker", marker); cb.setMaxResults(limit); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) { return null; } }
setting.addOptionalParameter("limit", limit); setting.addOptionalParameter("marker", marker); cb.setMaxResults(limit); return evm.applySetting(setting, cb).getSingleResult(); } catch (NoResultException ex) {