当前位置: 首页 > 面试题库 >

JPA查询MONTH / YEAR函数

席银龙
2023-03-14
问题内容

如何MONTH像SQL查询一样使用函数编写JPA 查询?

@NamedQuery(name="querybymonth", query="select t from table1 t where MONTH(c_Date) = 5")

当我使用上述模式进行查询时,出现错误:unexpected token - MONTH


问题答案:

如果使用的是EclipseLink(2.1),则可以使用FUNC()函数来调用JPA JPQL规范中未定义的任何数据库函数。

即FUNC(’MONTH’,c_Date)

在JPA 2.1(EclipseLink
2.5)中,FUNCTION语法成为规范的一部分(并替代了EclipseLink特定的FUNC)。

如果使用的是TopLink Essentials,则无法在JPQL中执行此操作,但是可以为其定义TopLink Expression查询(类似于JPA
2.0标准),或使用本机SQL。

另外,如果您使用任何JPA 2.0提供程序并使用Criteria查询,则可以使用function()API来定义此功能。



 类似资料:
  • 问题内容: 我想通过添加1个月来更新数据库中的month,但是我不知道如何在以下存储过程查询中添加month我在sql中不好,请检查一下 当执行查询时,我必须写些什么才能增加1个月 问题答案: 若要将类型的现有值增加一个月或一个月,请使用: 就像Oleg正确指出的那样,假设您的两个语句具有相同的条件(),那么您可以一次完成此操作:

  • 问题内容: 我想执行一个在本机SQL中看起来像这样的查询: 如果我想像这样在Doctrine的查询生成器中实现这一点: 我收到错误异常 [语法错误]第0行,第63行:错误:预期的已知功能,获取了’YEAR’ 如何使用Doctrines查询构建器实现查询? 笔记: 我知道Doctrine的Native SQL。我已经尝试过了,但是这导致了我的生产数据库表和开发数据库表使用不同名称的问题。我想与数据库

  • 我想在我的查询中调用一个函数。例如: 在我的myTableRepository中,我可以执行以下操作: 但向语句添加函数调用不起作用: 有没有办法让它在JPQL中工作? 我的错误:

  • 问题内容: 我正在尝试做一些非常简单的事情,但是开始意识到Java中的日期有点雷区。我想要的是让三个整数(一年,一个月和一个日期)通过的组创建一些对象,对其进行一些简单的测试(沿着日期B之前的日期A和1990年1月1日之后的行A)将它们传递给对象,然后通过JDBC将其传递给数据库。 一切都非常简单,并且可以使用构造函数正常运行。当然,该构造函数已弃用,我想避免在正在编写的新代码中使用已弃用的调用。

  • 问题内容: 我有 以下内容: 所以,我的数据库为是 现在,我想用键和值搜索实体。 但是出现以下错误: 我参考过的参考书之一是:Spring Data JPA教程第四部分:JPA标准查询, 但对我来说没有运气。 问题答案: 该解决方案是不是。