2012-09-18 13 views
7

Eventuali duplicati:
Example of using CURRENT_DATE in JPA queryCreare query corrispondente per data corrente

Sto cercando di aggiungere una query al mio repository per confrontare una data memorizzata nel db contro la data corrente.

La mia domanda è come questo:

@Query("Select c from Customer c where c.terminated != 1 or c.terminationDate > <currentDate>") 
public List<Customer> getTerminatedCustomers(); 

Cosa posso inserire per <currentDate>?

Se tutto fallisce, potrei aggiungere un parametro al metodo e passare la data corrente alla query come questa. Ma preferirei una soluzione più elegante, se possibile.

risposta

20

Questa domanda è in realtà un duplicato di this one. Secondo la specifica API Persistenza Java 4.6.17.2.3 ci sono funzioni predefinite CURRENT_DATE, CURRENT_TIME e CURRENT_TIMESTAMP. Quindi la domanda dovrebbe essere definito come

select c from Customer c where c.terminated != 1 or c.terminationDate > CURRENT_DATE 
+0

Per quanto riguarda il fatto che 'CURRENT_DATE' è una funzione standard JPA e dovrebbe funzionare allo stesso modo in tutti i provider JPA e RDBMS, dovrebbe essere' CURRENT_DATE() 'quando utilizzato in Hibernate con SQL Server. ([Prova] (https://stackoverflow.com/q/15298426/1429387)) – naXa