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

使用Hibernate / JPA按给定ID按给定ID选择一组对象的最佳方法是什么

松亦
2023-03-14
问题内容

我想选择多个具有给定id的对象,但也要按给定顺序选择对象,例如:

<named-query name="getQuestionsByIds">
    <query><![CDATA[from Question q where q.id in (:ids)]]></query>
</named-query>

但是在参数中的排序方式与id相同。

例如在mysql中,可以这样完成:

SELECT * FROM table ORDER BY FIELD( id, 23, 234, 543, 23 )

什么是最好的方法?


问题答案:

Hibernate会保留不知道的功能,并在编写时将其传递给SQL,因此,假设您使用的是MySQL,是否尝试过使用“ ORDER BY
FIELD”子句编写HQL?就像是…

select q from Question q where q.id in (:ids) ORDER BY FIELD(id, :ids)


 类似资料:
  • 我有一个这样的用例。我在Mongo DB中有问题,有CRUD微服务。在那里,我公开了一个API方法,通过查询参数提供的ID列表获取问题。比如说,为了简单起见,用户会提出一些问题?id=2,id=7,id=4,id=5 然后我需要按照同样的顺序返回问题列表,如下所示 但是请注意,这既不是ASC也不是DESC,而是可以是任何任意顺序,例如 我正在使用org。springframework。数据mong

  • 通过id选择一行应该是一件简单的事情,但我在如何将其映射到对象时遇到了一些麻烦。 我发现这个问题是寻找同样的东西,但给出的答案对我不起作用。 目前我有这是工作,但它似乎没有那么优雅,因为它应该。 我觉得获取一个列表,然后使用是很大的,而且没有必要。我一定是漏掉了什么。

  • 问题内容: 我有类似的东西 如果我只是这样做,它将以ID升序返回行。有没有一种方法可以按照IN语句中给出的顺序取回行? 问题答案: 您应该使用“ ORDER BY FIELD”。因此,例如:

  • 我正在和Kafka经纪人联系阿帕奇·Flink。 我随机收到了以下消息: 消息(时间戳=[…],索引=1,someData=[…]) 消息(时间戳=[…],索引=2,someData=[…]) 消息(时间戳=[…],索引=3,某些数据=[…]) 消息(时间戳=[…],索引=2,someData=[…]) 消息(时间戳=[…],索引=3,某些数据=[…]) 消息(时间戳=[…],索引=1,someD

  • 问题内容: 从下面的数据中,我需要使用SQL Server 2005为每个链接ID选择最接近指定日期的记录: 因此,使用01/10/2010选择它们应返回: 我知道这是有可能的,但似乎无法绕开我的头脑(必须太接近一天的结束了:P)如果有人可以帮助或朝正确的方向轻轻推一下,将不胜感激! 编辑: 另外我也遇到了这个sql以获取最接近的日期: 但无法弄清楚如何正确地整合到查询中… 谢谢 问题答案: 你可

  • 我在用户和任务之间有一对多的关系(一个用户有很多任务)。 我在数据库中插入我的数据,其中每个任务都与用户ID有一个外键关联。在JPA中有没有可能本质上说: 这是我的简单回购