JPQL / HQL запрос на удаление с данными весны jpa - PullRequest
0 голосов
/ 06 апреля 2020

Я не очень знаком с JPQL / HQL, поэтому вопрос может быть немного тупым, я пытаюсь написать запрос на удаление со строкой jpa.

У меня есть GeneratedStatement объект с GeneratedStatementId объектом, который состоит из createdDate.

Мой запрос должен выглядеть примерно так:

@Query(value = "DELETE FROM EODGeneratedStatement s WHERE s.createdDate < :expiryDate")
int deleteByIdCreatedDateBefore(LocalDate expiryDate);

Но я думаю, что в нем отсутствует объект GeneratedStatementId, и я не уверен, как его добавить. Это должно быть похоже на s.getGeneratedStatementId (). CreationDate, что я считаю

1 Ответ

0 голосов
/ 06 апреля 2020

Я предполагаю, что у вас есть @Entity с именем GeneratedStatement, в котором есть GeneratedStatementId объект POJO, содержащий переменную createdDate.

Если вы ищете @OneToOne Отображение между GeneratedStatement и GeneratedStatementId, нижеприведенный запрос должен работать.

@Query(value = "DELETE FROM GeneratedStatement s left join 
                        s.GeneratedStatementId sid WHERE sid.createdDate < :expiryDate")
int deleteByIdCreatedDateBefore(LocalDate expiryDate);

@OneToOne Отображение и FetchType равно Lazy,

@Query(value = "DELETE FROM GeneratedStatement s left join fetch 
                        s.GeneratedStatementId sid WHERE sid.createdDate < :expiryDate")
...