@Override public List<Product> readProductsByName(String searchName) { TypedQuery<Product> query = em.createNamedQuery("BC_READ_PRODUCTS_BY_NAME", Product.class); query.setParameter("name", searchName + '%'); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.getResultList(); }
@Override public List<Customer> readCustomersByUsername(String username, Boolean cacheable) { TypedQuery<Customer> query = em.createNamedQuery("BC_READ_CUSTOMER_BY_USER_NAME", Customer.class); query.setParameter("username", username); query.setHint(QueryHints.HINT_CACHEABLE, cacheable); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Order"); return query.getResultList(); }
@Override public List<Customer> readCustomersByEmail(String emailAddress) { TypedQuery<Customer> query = em.createNamedQuery("BC_READ_CUSTOMER_BY_EMAIL", Customer.class); query.setParameter("email", emailAddress); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Order"); return query.getResultList(); }
@Override public List<URLHandler> findAllRegexURLHandlers() { TypedQuery<URLHandler> query = em.createNamedQuery("BC_READ_ALL_REGEX_HANDLERS", URLHandler.class); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override public URLHandler findURLHandlerByURI(String uri) { TypedQuery<URLHandler> query = em.createNamedQuery("BC_READ_BY_INCOMING_URL", URLHandler.class); query.setParameter("incomingURL", uri); query.setHint(QueryHints.HINT_CACHEABLE, true); List<URLHandler> results = query.getResultList(); if (results != null && !results.isEmpty()) { return results.get(0); } else { return null; } }
protected List<Sku> readAllActiveSkusInternal(Integer pageSize, Date currentDate, Long lastId) { CriteriaQuery<Sku> criteria = getCriteriaForActiveSkus(currentDate, lastId); TypedQuery<Sku> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.setMaxResults(pageSize).getResultList(); }
protected List<Product> readAllActiveProductsInternal(Integer pageSize, Date currentDate, Long lastId) { CriteriaQuery<Product> criteria = getCriteriaForActiveProducts(currentDate, lastId); TypedQuery<Product> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.setMaxResults(pageSize).getResultList(); }
@Override public List<Category> readAllCategories(int limit, int offset) { TypedQuery<Category> query = em.createNamedQuery("BC_READ_ALL_CATEGORIES", Category.class); query.setFirstResult(offset); query.setMaxResults(limit); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.getResultList(); }
@Override public List<Category> readCategoriesByName(String categoryName, int limit, int offset) { TypedQuery<Category> query = em.createNamedQuery("BC_READ_CATEGORY_BY_NAME", Category.class); query.setParameter("categoryName", categoryName); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); query.setFirstResult(offset); query.setMaxResults(limit); return query.getResultList(); }
public List<AdminSection> readAdminSectionForClassName(String className) { TypedQuery<AdminSection> q = em.createQuery( "select s from " + AdminSection.class.getName() + " s where s.ceilingEntity = :className", AdminSection.class); q.setParameter("className", className); q.setHint(org.hibernate.ejb.QueryHints.HINT_CACHEABLE, true); List<AdminSection> result = q.getResultList(); if (CollectionUtils.isEmpty(result)) { return null; } return q.getResultList(); }
@Override public List<Category> readCategoriesByIds(List<Long> categoryIds) { TypedQuery<Category> query = em.createQuery( "select category from org.broadleafcommerce.core.catalog.domain.Category category " + "where category.id in :ids", Category.class); query.setParameter("ids", sandBoxHelper.mergeCloneIds(CategoryImpl.class, categoryIds.toArray(new Long[categoryIds.size()]))); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.getResultList(); }
@Override public List<Product> readProductsByName(@Nonnull String searchName, @Nonnull int limit, @Nonnull int offset) { TypedQuery<Product> query = em.createNamedQuery("BC_READ_PRODUCTS_BY_NAME", Product.class); query.setParameter("name", searchName + '%'); query.setFirstResult(offset); query.setMaxResults(limit); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.getResultList(); }
protected List<Sku> readAllActiveSkusInternal(int page, int pageSize, Date currentDate) { CriteriaQuery<Sku> criteria = getCriteriaForActiveSkus(currentDate); int firstResult = page * pageSize; TypedQuery<Sku> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); return query.setFirstResult(firstResult).setMaxResults(pageSize).getResultList(); }
@Override public Long readTotalStaticAssetCount() { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<Long> criteria = builder.createQuery(Long.class); criteria.select(builder.count(criteria.from(StaticAssetImpl.class))); TypedQuery<Long> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getSingleResult(); }
@Override public List<PageField> readPageFieldsByPageId(Long pageId) { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<PageField> criteria = builder.createQuery(PageField.class); Root<PageFieldImpl> pageField = criteria.from(PageFieldImpl.class); criteria.select(pageField); Path<Object> path = pageField.get("page").get("id"); criteria.where(builder.equal(pageField.get("page").get("id"), pageId)); TypedQuery<PageField> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override public List<IndexField> readFieldsByEntityType(FieldEntity entityType) { CriteriaBuilder builder = em.getCriteriaBuilder(); CriteriaQuery<IndexField> criteria = builder.createQuery(IndexField.class); Root<IndexFieldImpl> root = criteria.from(IndexFieldImpl.class); criteria.select(root); criteria.where(root.get("field").get("entityType").as(String.class).in(entityType.getAllLookupTypes())); TypedQuery<IndexField> query = em.createQuery(criteria); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Search"); return query.getResultList(); }
@Override public List<Category> readActiveSubCategoriesByCategory(Category category, int limit, int offset) { TypedQuery<Category> query = em.createNamedQuery("BC_READ_ACTIVE_SUBCATEGORIES_BY_CATEGORY", Category.class); query.setParameter("parentCategoryId", sandBoxHelper.mergeCloneIds(CategoryImpl.class, category.getId())); query.setParameter("currentDate", getCurrentDateAfterFactoringInDateResolution()); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); query.setFirstResult(offset); query.setMaxResults(limit); return query.getResultList(); }
@Test public void test_hql_read_only_entities_example() { doInJPA( this::entityManagerFactory, entityManager -> { //tag::hql-read-only-entities-example[] List<Call> calls = entityManager.createQuery( "select c " + "from Call c " + "join c.phone p " + "where p.number = :phoneNumber ", Call.class ) .setParameter( "phoneNumber", "123-456-7890" ) .setHint( "org.hibernate.readOnly", true ) .getResultList(); calls.forEach( c -> c.setDuration( 0 ) ); //end::hql-read-only-entities-example[] }); }