2016-04-11 8 views
1

Ich habe eine Order TabelleWie mysql Abfrage JPA benannte Abfrage

order_id konvertieren | Kunden-ID | submit_date | Bestellnummer | ....

zur Zeit ich alle Datensätze auf customer_id basierend bin Abrufen von jpa named query

public List<Order> readOrders(Long customerId){ 
Query query = em.createNamedQuery("select order from com.mycompany.Order where order.customer.id = :customerId"); 
query.setParameter("customerId", customerId); 
return query.getResultLis(); 
} 

oben Abfrage funktioniert gut und es alle Datensätze aus db abruft, aber meine Aufgabe ist, die holen nur Aufzeichnungen aus der Vergangenheit 15 days für diesen wissen, dass ich die sql query

select * from Oder where SUBMI_DATE between date_sub(sydate(), interval 15 day) and sydate() and customer_id = 101; 

oben sql query funktionieren gut, aber mein Problem, das ich k nicht jetzt, wie oben sql query-jpa named query umwandeln kann jemand helfen bitte diese auf

Antwort

1

Unter der Annahme, dass Ihr Objekt Äquivalent von SQL SUBMI_DATE ist submitDate

public List<Order> readOrders(Long customerId){ 
    Query query = em.createNamedQuery("select order from com.mycompany.Order where order.customer.id = :customerId and order.submitDate > :specificDate"); 
    // I use Joda time you can use java.util.Date directly 
    DateTime specificDate= new DateTime().minusDays(15); 

    query.setParameter("customerId", customerId); 
    query.setParameter("specificDate", specificDate.toDate(),TemporalType.DATE); 

return query.getResultLis(); 
} 
+0

Vielen Dank –

Verwandte Themen