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

Hibernate命名查询按参数排序

戚繁
2023-03-14
问题内容

谁能指出我如何将order by子句作为命名参数传递给HQL?

有效的示例:

select tb from TransportBooking as tb

and TIMESTAMP(tb.bookingDate, tb.bookingTime) >= current_timestamp() order by tb.bookingDate

无效的示例:

select tb from TransportBooking as tb

and TIMESTAMP(tb.bookingDate, tb.bookingTime) >= current_timestamp() order by :order

问题答案:

不支持,只能在WHEREand HAVING子句中使用输入参数,并且不能为ORDER BY子句使用参数。或者,如果我改写,您不能对列使用参数,只能对值使用。因此,要么:

  • 有尽可能多的命名查询排序顺序
  • 将排序字符串连接到查询字符串
  • 使用条件查询


 类似资料:
  • 错误:运算符不存在:uuid=bytea 有什么建议吗?

  • 问题内容: 使用Hibernate时,有什么方法可以在命名查询中指定可选参数(例如,从表单提供搜索参数而并非所有参数都是必需的)?我正在使用本机SQL查询,但该问题可能也适用于命名HQL查询。 我很确定对此的答案是“否”,但是我还没有在文档中找到确切的答案。 问题答案: AFAIK,没有这样的事情,因此您必须为此编写一个动态查询。也许看一下以前的答案,该答案显示了如何在HQL中执行此操作(您可以将

  • 我对命名查询有问题,但我不明白为什么它不工作。 我是这样定义查询的: 在这里我使用它: 错误:由:组织引起。冬眠HibernateException:命名查询中的错误:getUserRatings

  • 问题内容: 我对Hibernate Native Query有问题。我有一个选择,它选择数组切片(PostgreSQL数据库)。 问题在于hibernate状态识别以下部分:来自“ SELECT my_array [1:300] …”的“:300”作为命名参数,并且我得到以下异常:尚未设置所有命名参数。 我试图用’:’,’::’逃脱冒号(:),但没有成功。 Hibernate版本是3.2 问题答案

  • 问题内容: 给出以下HQL查询: 我使用Query对象的方法进行设置。 我想使用对象进行设置,但是在查看Hibernate文档和方法列表时,我看不出要使用哪种明显的选择。有任何想法吗? 问题答案: 使用,的Javadoc在这里。 有四种变体可供选择。

  • 我试图比较Hibernate条件和命名查询的性能。我知道这一切都取决于实际的查询本身,最后一个字取决于它们在运行时如何配置文件。尽管如此,试图理清每一个都有什么。 我试图将Q分为两个部分&寻找两者的验证/更正: 命名查询与HQL相比具有相同的优势--查询在启动时被解析一次。然后从应用程序中任何必要的地方执行。 第2部分--比较两者: 所以在这张图里, 提亚。