作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试为网络服务创建一个@NamedQuery
,以便可以返回具有给定出生日期的客户列表。
GlassFish 报告以下错误:
Exception Description: Problem compiling [SELECT c FROM Customer c WHERE c.dob = to_date(:dob, 'dd-Mon-yyyy')]. [38, 45] The identification variable 'to_date' is not defined in the FROM clause.
@NamedQuery(name = "Customer.findByDob", query = "SELECT c FROM Customer c WHERE c.dob = to_date(:dob, 'dd-Mon-yyyy')")
@GET
@Path("findByDob/{dob}")
@Produces({"application/json"})
public List<Customer> findByDob(@PathParam("dob") String dob) {
Query q = em.createNamedQuery("Customer.findByDob");
q.setParameter("dob", dob);
return q.getResultList();
}
非常感谢任何反馈。
最佳答案
您可以在实体管理器中委托(delegate)从日期到字符串数据库格式的转换。像这样的东西应该有效:
@NamedQuery(name = "Customer.findByDob", query = "SELECT c FROM Customer c WHERE c.dob = :dob")
@GET
@Path("findByDob/{dob}")
@Produces({"application/json"})
public List<Customer> findByDob(@PathParam("dob") String dob) {
SimpleDateFormat sdf = new SimpleDateFormat("dd-Mon-yyyy");
Date dobDate = sdf.parse(dob); //Create a new Java Date object.
Query q = em.createNamedQuery("Customer.findByDob");
q.setParameter("dob", dobDate); //The entity manager will transform the Date to query needs.
return q.getResultList();
}
关于java - 如何在 JPQL 中创建 "findByDate"NamedQuery?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55294052/
我是一名优秀的程序员,十分优秀!