JPQL получит разницу в днях между колонкой и сейчас - PullRequest
0 голосов
/ 30 января 2019

Я использую hibernate и jpa в приложении весенней загрузки.У меня есть спящий объект с 2 столбцами, type (строка) и date (LocalDate).

Я хочу выбрать все столбцы и разницу дней между моим столбцом дат и сейчас.

Мне удалось в PostgreSQL: select date, date - current date from table;

Я использую интерфейс, расширяющий JpaRepository.До сих пор я успешно вставлял новые запросы с помощью аннотаций @Query.Я не могу понять, как выбрать мои столбцы и столбец, содержащий разницу дней в jpql.

С уважением,

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Действительно, вы можете использовать создатель запросов.Вы должны создать новый объект, который имеет те же столбцы, что и исходная таблица, и, кроме того, рассчитанную разницу между столбцом даты и сейчас.Вы должны быть осторожны, какой тип даты является вашим столбцом.

По моему опыту, только Date from java.util может использоваться для различий с CURRENT_DATE (я могу ошибаться).

public List<NewEntity> getTest() {
String queryStr = "select new com.entity.NewEntity(n.type, n.date - CURRENT_DATE as 
time) from Table as n"
TypedQuery<PunteInspectieTimpRamas> query = entityManager.createQuery(queryStr, 
NewEntity.class);

return query.getResults()

}
0 голосов
/ 30 января 2019

Не уверен, что вы можете сделать это с помощью jpql.Но вы можете использовать ваш запрос как собственный запрос непосредственно в вашем хранилище:

@Query(value = "SELECT ... ", nativeQuery = true) ClassToReturn methodName();

см. https://www.baeldung.com/spring-data-jpa-query

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...