我有一个Order
表
order_id | customer_id | submit_date | order_number |。。。。
目前我正在使用jpa named query
获取基于customer_id
的所有记录
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();
}
上面的查询工作正常,它从数据库中获取所有记录,但我的任务是只从过去的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
。有人能在这个上提供帮助吗?
假设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();
}