Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Metamodel Generic / 5 сообщений из 5, страница 1 из 1
07.04.2017, 13:05
    #39434765
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Metamodel Generic
Заметил часто повторяется код, возвращающий количество строк в таблице
Код: java
1.
2.
3.
4.
5.
6.
7.
    CriteriaBuilder qbCount = em.getCriteriaBuilder();
    CriteriaQuery<Long> queryCount = qb.createQuery(Long.class);
    Root<Administrator> rootCount = query.from(Administrator.class);
    queryCount.select(qbCount.count(rootCount.get(Administrator_.id)));
    //Predicate[] restrictionsCount = buildClientPredicates(adminFilter, qbCount, rootCount);
    //queryCount.where(restrictionsCount);
    Long totalCount = em.createQuery(queryCount.distinct(true)).getSingleResult();



Можно ли переписать данный код на generic?
В частности как переделать Administrator_.id
...
Рейтинг: 0 / 0
07.04.2017, 13:09
    #39434768
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Metamodel Generic
-=Koba=-В частности как переделать Administrator_.id
Сделать аргументом метода так же как и Class
...
Рейтинг: 0 / 0
07.04.2017, 13:20
    #39434776
Usman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Metamodel Generic
-=Koba=-,

Spring Data JPA используется в проекте ?

- CrudRepository.count()
- JpaSpecificationExecutor.count(<specification>)
...
Рейтинг: 0 / 0
09.04.2017, 11:09
    #39435381
-=Koba=-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Metamodel Generic
Спасибо за ответы
...
Рейтинг: 0 / 0
09.04.2017, 18:10
    #39435489
Hett
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Metamodel Generic
Тоже самое сегодня писал:

Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
    private <T> int getCount(Class<T> clazz, Map<String, Object> filters)
    {
        CriteriaBuilder criteriaBuilder = entityManager.getCriteriaBuilder();
        CriteriaQuery<Long> criteriaQuery = criteriaBuilder.createQuery(Long.class);
        Root<T> root = criteriaQuery.from(clazz);
        criteriaQuery.select(criteriaBuilder.count(root));
        for (Map.Entry<String, Object> filter : filters.entrySet()) {
            criteriaQuery.where(criteriaBuilder.equal(root.get(filter.getKey()), filter.getValue()));
        }

        return Math.toIntExact(entityManager.createQuery(criteriaQuery).getSingleResult());
    }
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Metamodel Generic / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]