我有一个Order
表
order_id | customer_id | submit_date | order_number | ....
目前,我使用customer_id
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();
}
上面的查询工作正常,它从db获取所有记录,但我的任务是仅从过去的15 days
获取记录,我知道sql query
select * from Oder where SUBMI_DATE between date_sub(sydate(), interval 15 day) and sydate() and customer_id = 101;
上面的sql query
工作正常,但我的问题我不知道如何将sql query
转换为jpa named query
以上任何人都可以请求帮助
答案 0 :(得分:1)
假设您的对象sql SUBMI_DATE
等效于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();
}