@Override public List<AdminModule> readAllAdminModules() { Query query = em.createNamedQuery("BC_READ_ALL_ADMIN_MODULES"); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "blAdminSecurityQuery"); List<AdminModule> modules = query.getResultList(); return modules; }
@Override public List<AdminSection> readAllAdminSections() { Query query = em.createNamedQuery("BC_READ_ALL_ADMIN_SECTIONS"); query.setHint(org.hibernate.ejb.QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "blAdminSecurityQuery"); List<AdminSection> sections = query.getResultList(); return sections; }
@SuppressWarnings("unchecked") @Override public List<ModuleConfiguration> readByType(Class<? extends ModuleConfiguration> type) { //TODO change this to a JPA criteria expression Query query = em.createQuery("SELECT config FROM " + type.getName() + " config"); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "blConfigurationModuleElements"); return query.getResultList(); }
@SuppressWarnings("unchecked") public List<Country> findCountries() { Query query = em.createNamedQuery("BC_FIND_COUNTRIES"); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@SuppressWarnings("unchecked") public List<Country> findCountries() { Query query = em.createNamedQuery("BC_FIND_COUNTRIES"); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override @SuppressWarnings("unchecked") public List<CountrySubdivision> findSubdivisions() { Query query = em.createNamedQuery("BC_FIND_COUNTRY_SUBDIVISIONS"); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override @SuppressWarnings("unchecked") public List<CountrySubdivision> findSubdivisions(String countryAbbreviation) { Query query = em.createNamedQuery("BC_FIND_SUBDIVISIONS_BY_COUNTRY_ABBREVIATION"); query.setParameter("countryAbbreviation", countryAbbreviation); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override @SuppressWarnings("unchecked") public List<Store> readAllStores() { Query query = em.createNamedQuery("BC_FIND_ALL_STORES"); query.setParameter("archived", 'N'); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@SuppressWarnings("unchecked") public List<State> findStates(String countryAbbreviation) { Query query = em.createNamedQuery("BC_FIND_STATES_BY_COUNTRY_ABBREVIATION"); query.setParameter("countryAbbreviation", countryAbbreviation); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override public List<CountrySubdivision> findSubdivisionsByCountryAndCategory(String countryAbbreviation, String category) { Query query = em.createNamedQuery("BC_FIND_SUBDIVISIONS_BY_COUNTRY_ABBREVIATION_AND_CATEGORY"); query.setParameter("countryAbbreviation", countryAbbreviation); query.setParameter("category", category); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override @SuppressWarnings("unchecked") public List<Store> readAllStoresByState(final String state) { Query query = em.createNamedQuery("BC_FIND_ALL_STORES_BY_STATE"); query.setParameter("state", state); query.setParameter("archived", 'N'); query.setHint(QueryHints.HINT_CACHEABLE, true); return query.getResultList(); }
@Override public BroadleafCurrency findDefaultBroadleafCurrency() { Query query = em.createNamedQuery("BC_READ_DEFAULT_CURRENCY"); query.setHint(org.hibernate.ejb.QueryHints.HINT_CACHEABLE, true); List<BroadleafCurrency> currencyList = query.getResultList(); if (currencyList.size() >= 1) { return currencyList.get(0); } return null; }
@Override public StructuredContentType findStructuredContentTypeByName(String name) { Query query = em.createNamedQuery("BC_READ_STRUCTURED_CONTENT_TYPE_BY_NAME"); query.setParameter("name",name); query.setHint(QueryHints.HINT_CACHEABLE, true); List<StructuredContentType> results = query.getResultList(); if (results.size() > 0) { return results.get(0); } else { return null; } }
@Override @SuppressWarnings("unchecked") public Store readStoreByStoreCode(final String storeCode) { Query query = em.createNamedQuery("BC_FIND_STORE_BY_STORE_NAME"); query.setParameter("storeName", storeCode.toUpperCase()); query.setHint(QueryHints.HINT_CACHEABLE, true); List result = query.getResultList(); return (result.size() > 0) ? (Store) result.get(0) : null; }
@Override public SearchRedirect findSearchRedirectBySearchTerm(String searchTerm) { Query query = em.createQuery(buildFindSearchRedirectBySearchTermCriteria(searchTerm)); query.setMaxResults(1); query.setHint(QueryHints.HINT_CACHEABLE, true); List<SearchRedirect> results = query.getResultList(); if (results != null && !results.isEmpty()) { return results.get(0); } else { return null; } }
@Override public List<RatingSummary> readRatingSummaries(final List<String> itemIds, final RatingType type) { final Query query = em.createNamedQuery("BC_READ_RATING_SUMMARIES_BY_ITEM_ID_AND_TYPE"); query.setParameter("ratingType", type.getType()); query.setHint(QueryHints.HINT_CACHEABLE, true); query.setHint(QueryHints.HINT_CACHE_REGION, "query.Catalog"); List<RatingSummary> ratings = batchExecuteReadQuery(query, itemIds, "itemIds"); return ratings; }
@Override public void execute() throws Throwable { Query q = em.createNamedQuery("BC_ORDER_LOCK_RELEASE"); q.setParameter("orderId", order.getId()); q.setParameter("key", getOrderLockKey()); q.setHint(QueryHints.HINT_CACHEABLE, false); int rowsAffected = q.executeUpdate(); response[0] = rowsAffected == 1; }
private void applyQueryHints(Query query) { for (Entry<String, Object> hint : getQueryHints().withFetchGraphs(em)) { query.setHint(hint.getKey(), hint.getValue()); } }
/** * Apply the current transaction timeout, if any, to the given JPA Query object. * <p>This method sets the JPA 2.0 query hint "javax.persistence.query.timeout" accordingly. * @param query the JPA Query object * @param emf the JPA EntityManagerFactory that the Query was created for */ public static void applyTransactionTimeout(Query query, EntityManagerFactory emf) { EntityManagerHolder emHolder = (EntityManagerHolder) TransactionSynchronizationManager.getResource(emf); if (emHolder != null && emHolder.hasTimeout()) { int timeoutValue = (int) emHolder.getTimeToLiveInMillis(); try { query.setHint("javax.persistence.query.timeout", timeoutValue); } catch (IllegalArgumentException ex) { // oh well, at least we tried... } } }
@Test public void test_jpql_api_basic_usage_example() { doInJPA( this::entityManagerFactory, entityManager -> { //tag::jpql-api-basic-usage-example[] Query query = entityManager.createQuery( "select p " + "from Person p " + "where p.name like :name" ) // timeout - in milliseconds .setHint( "javax.persistence.query.timeout", 2000 ) // flush only at commit time .setFlushMode( FlushModeType.COMMIT ); //end::jpql-api-basic-usage-example[] }); }