JPQL - арифметика без даты - PullRequest
0 голосов
/ 06 декабря 2011

Я понимаю, что JPQL не позволяет нам делать арифметику дат, но я новичок в этом, поэтому мне интересно, есть ли простой способ решения этой проблемы (я использую eclipselink):

Iесть две сущности, сущность A, которая имеет отношение один ко многим с сущностью B.

Субъект A хранит время, и каждая запись для сущности B имеет дату.

Я хочувыберите строки из объекта B в диапазоне дат, принимая во внимание поле времени объекта A, которому он принадлежит.

Одно из решений, о котором я подумал, - это просто выбрать все объекты в диапазоне дат (игнорируя время), а затем вручную отфильтровывать результаты с учетом времени в объекте A после выполнения запроса.

Но я хочу знать, существует ли способ JPA, который не приведет к ненужным записямдоставляется.

1 Ответ

1 голос
/ 07 декабря 2011

EclipseLink поддерживает ключевое слово FUNC в JPQL, которое позволяет вызывать любую функцию базы данных.

Ваша база данных будет предоставлять функции арифметики даты, поэтому вы можете использовать их.

См, http://wiki.eclipse.org/EclipseLink/UserGuide/JPA/Basic_JPA_Development/Querying/Support_for_Native_Database_Functions

...