Есть таблица зарегистрированных юзеров (id, name, create_date).
@Data
@Entity
@Table(name = "users", catalog = "test")
public class Users {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "user_id")
private Integer id;
@Column(name = "name")
private String name;
@CreatedDate
@Column(name = "created_date", nullable = false)
@JsonIgnore
private ZonedDateTime createdDate;
}
Задача: вытянуть всех юзеров за год (от сегодня и до такого же дня в прошлом году) по дате регистрации и второй метод - всех юзеров за месяц (месяц передается как индекс)
public List<Users> getAll() {
List<Users> users = usersRepository.findAll();
List<Integer> monthIndexList = new ArrayList<>();
for (Users user : users) {
if (user.getCreatedDate().getMonthValue() == ZonedDateTime.now().getYear()) {
monthIndexList.add(user);
}
}
return users;
}
это тупо, но как временный вариант.
пробовал List<Users> findAllByCreatedDateBetween(ZonedDateTime start, ZonedDateTime end);
- не работает, прилетает пустой массив.
public List<Users> getFindByLastYear() {
return usersRepository.findAllByCreatedDateBetween(ZonedDateTime.now(), ZonedDateTime.now().minusMonths(12));;
}
Вопрос(ы):
1. Что не так с findAllByCreatedDateBetween
? (читал тут) должно работать.
2. Помочь составить Spring запрос, который сделает выборку за месяц по индексу месяца.
В ZonedDateTime
есть метод getMonthValue()
. Составленный Spring-запрос findAllByCreatedDate_MonthValue(indexMonth)
- не работает.
Благодарю за любою помощь)
Виртуальный выделенный сервер (VDS) становится отличным выбором
Всем приветУ меня стоит следующая задача, написание rest клиента для приложения в андроид
Пишу Класс для создание/чтения файлов propertiesКаждый файл находится в своей папке
У меня есть блоки фиксированной ширины и высотыЕсли их сделать слайдерами с помощью плагина owl-carousel-2, каждому блоку устанавливается атрибут...