Java 如何在JPQL中使用LIKE子句?
我有一个名为orders的表,我的目的是获取2012年结束的所有订单。我的约会对象是VARCHAR,我正在使用My-SQL数据库。在一个类中,我运行以下Java 如何在JPQL中使用LIKE子句?,java,sql,jpql,Java,Sql,Jpql,我有一个名为orders的表,我的目的是获取2012年结束的所有订单。我的约会对象是VARCHAR,我正在使用My-SQL数据库。在一个类中,我运行以下JPQL查询,得到 解析查询时出现语法错误[将订单中的对象(o)选择为o,其中o.orderDate类似于%2012],第1行第58列:意外字符[%]。 我试过这个 public List<Orders> getOrdersInCurrentYear(String def) { EntityManager em = getEn
JPQL
查询,得到
解析查询时出现语法错误[将订单中的对象(o)选择为o,其中o.orderDate类似于%2012],第1行第58列:意外字符[%]。
我试过这个
public List<Orders> getOrdersInCurrentYear(String def) {
EntityManager em = getEntityManager();
try {
Query q = em.createQuery("select object(o) from Orders as o WHERE o.orderDate LIKE :def");
q.setParameter("def", "%" + def);
return q.getResultList();
} finally {
em.close();
}
}
公共列表getOrdersInCurrentYear(字符串定义){
EntityManager em=getEntityManager();
试一试{
Query q=em.createQuery(“从订单中选择对象(o)作为o,其中o.orderDate类似于:def”);
q、 设置参数(“def”、“%”+def);
返回q.getResultList();
}最后{
em.close();
}
}
如何使用此方法获取2012年底的所有订单
提前感谢。您不能对
日期
和日期时间
数据类型使用LIKE
运算符
有一些用于日期、月份、年份等的函数。大多数持久性提供程序都受支持
FUNC('MONTH', date)
FUNC('YEAR', date)
对于日食
select object(o) from Orders as o WHERE FUNC('YEAR', o.orderDate) = :def
参数
q.setParameter("def", def);