Как запросить временной интервал в JPA? - PullRequest
0 голосов
/ 09 марта 2012

У меня есть одна сущность 'Log', которая содержит информацию о температуре.Я пытаюсь создать отчет, который имеет только два поля:

quantity : this field will tell how much my search should look
interval : minutes, hours, days, months, years (this field tells me how much is the interval of the search

Это моя Log сущность:

public class Log implements Serializable {
    private static final long serialVersionUID = 1L;

    @Id
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer id;

    private Timestamp time;

    private String value;
    // getters and setters ...

Поэтому, когда пользователь сообщает, как 1 minute IЯ должен искать последнюю минуту (или 60 записей как минимум).

Или, если через 1 месяц я получу все данные за последний месяц.

Я пытаюсь что-то вроде этого:

log.time < CURRENT_TIMESTAMP AND log.time > :param

Но как мне указать минуты, часы?Что я имею в виду, как может быть более конкретным в моем запросе?

1 Ответ

3 голосов
/ 09 марта 2012

Если единица времени - "дни":

Calendar now = Calendar.getInstance();
now.add(Calendar.DAY_OF_MONTH, -quantity);
Date param = now.getTime();

Сохраните запрос как есть и привяжите param к параметру запроса :param.

Для других интерваловсделать то же самое, но с соответствующим полем календаря (HOUR_OF_DAY, MINUTE и т. д.) вместо Calendar.DAY_OF_MONTH.

...