Spring Data JPA поддерживает подсчет сущностей с использованием спецификаций. Но есть ли способ подсчитать сущности с помощью разрешения имен методов? Допустим, мне нужен метод countByName
для подсчета сущностей с определенным именем, точно так же, как метод findByName
для получения всех сущностей с определенным именем.
java
spring
spring-data-jpa
YaoFeng
источник
источник
Ответы:
Начиная с Spring Data 1.7.1.RELEASE, вы можете сделать это двумя разными способами:
1) Новый способ , использующий вывод запросов как для подсчета, так и для запросов на удаление. Прочтите это (Пример 5). Пример,
2) Старый способ , используя аннотацию @Query.
Пример,
или также используя аннотацию @Param,
Проверьте также это, так что ответьте .
источник
Пока вы не используете версию 1.4, вы можете использовать явную аннотацию:
пример:
источник
long
вместоint
, иначе вы получите исключение ClassCastException без каких-либо подсказокJpaRepository также расширяет QueryByExampleExecutor. Таким образом, вам даже не нужно определять собственные методы в вашем интерфейсе:
А затем запросите:
источник
int age
будет включен, хотя и не установлен, ноInteger age
будет исключен из выборки (по крайней мере, в Eclipselink)Эта функция была добавлена в версии 1.4 M1.
источник
Рабочий пример
Вызов из уровня DAO
источник
По словам Абеля, после версии 1.4 (проверено в версии 1.4.3.RELEASE) можно сделать так:
public long countByName (имя строки);
источник
Видимо реализовано сейчас DATAJPA-231
источник
Спасибо вам всем! Теперь работа. DATAJPA-231
Было бы неплохо, если бы можно было создать счетчик…… методами, как и find…. Пример:
источник
По выпуску DATAJPA-231 функция еще не реализована.
источник
Я работаю с ним всего несколько недель, но не верю, что это строго возможно, однако вы сможете получить тот же эффект, приложив немного больше усилий; просто напишите запрос самостоятельно и аннотируйте имя метода. Вероятно, это не намного проще, чем написать метод самостоятельно, но, на мой взгляд, он чище.
Изменить: теперь это возможно в соответствии с DATAJPA-231
источник
источник
Если кто-то хочет получить счет на основе нескольких условий, то вот образец настраиваемого запроса
источник