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

Hibernate使用条件选择顶部和底部n行

公孙高畅
2023-03-14
问题内容

假设我有两个表格,书籍和评论。评论具有一列,星号,其值可以介于1到5之间。一本书可以包含许多评论。

如何选择所有书籍,以便使用Criteria API返回每本书的前3名和后3条评论(而不是所有评论)?

如果Criteria API无法使用,我会提出其他建议,例如HQL,SQL等。


问题答案:

回答我自己的问题…

我实际上对这有多么困难感到惊讶。涉及查询书籍的所有解决方案以及每本书具有其顶部和底部评论列表的结果都会导致在某些数据库上每本书籍进行N次查询,尤其是对于我的(MySql)要求3N。当然,也许有人可以找到解决这个问题的巧妙方法,但是我在玩代码,原始SQL,研究他人所做的事情,数据库限制等方面似乎总会回到这一点。

所以…我最终把问题转过来了。每当我查询书籍时(而不是频繁查询-FYI书籍/评论仅出于示例目的-
实际域不同),我都不会计算顶部和底部的评论,而是在提交新评论时计算顶部/底部的评论。这将提交“评论”从一个“查询”更改为三个查询,但是与查询“书籍”相比,提交评论很少。

为此,我在Book中添加了两个新属性topReviews和bottomReviews,并将它们映射为Review上的一对多列表。然后,我更新了保存新评论的html" target="_blank">代码,以查询相关书籍的顶部和底部评论(2个查询),在书籍上设置顶部/底部评论属性(覆盖先前的评论),并保存该书籍。现在,任何“图书”查询都会返回这些“缓存的”顶部和底部评论。我仍然有一个懒惰的“
reviews”属性,如果需要的话,它将具有所有评论(而不仅仅是顶部/底部)-另一个一对多映射。

我愿意接受其他建议。此处的大多数答案都无济于事,但由于数据库限制或需要太多查询,因此会遗漏问题或无法解决。



 类似资料:
  • 问题内容: 我的页面很大。因此,我决定在表格底部放置一个水平滚动条。但我希望此滚动条也位于表格的顶部。 我在模板中的内容是这样的: 仅在HTML和CSS中可以这样做吗? 问题答案: 要在元素顶部模拟第二个水平滚动条,请在具有水平滚动的元素上方放置一个“虚拟” ,刚好足以容纳滚动条。然后为虚拟元素和真实元素附加“scroll”事件的处理程序,以在移动任一滚动条时使另一个元素同步。虚拟元素将看起来像真

  • 我正在尝试使用元素构建progressbar。 CSS: 我现在正努力实现每一个其他元素文本都位于:before伪元素之上。现在所有的东西都在before元素下面。我需要改变之间,所以文本不重叠的窗口调整大小。 还有什么我还没考虑过的简单方法吗? 谢谢!

  • 问题内容: 我不知道该如何称呼这个问题。如果你有更好的话请指正我。 我有两个表,用户和帖子。 使用者: 帖子: 现在,我要列出“最活跃”的用户-写得最多的用户。具体来说,我想要结果。 我可以得到预期的结果。但是,如果某些用户拥有相同数量的帖子,则排名可能不会是“ 公平的 ”。 例如,我可能会得到如下结果: 在这里,实际上还有几个拥有帖子的用户。 因此,这可能不是确切的结果。如何获得包含帖子的额外用

  • 在iPhone X模拟器(通用种子)中运行我的应用程序,我注意到两个奇怪的效果: 应用程序不使用全屏空间(顶部和底部区域为黑色) 标题栏下面有一个奇怪的白条 有人知道这里发生了什么以及如何解决这个问题吗?我在界面构建器中找不到任何新设置。

  • 我有多行标签(例如100行),文本从下到上滚动,有点像电影字幕。我想模糊10%的顶部和底部部分的标签,以便文本是进入和离开是模糊的。我如何才能做到这一点?我试图在这些位置上粘贴一些元素并模糊它们,但这不起作用。

  • 我正在使用recyclerview显示来自web服务的图像列表。我正在尝试在CardView小部件的ImageView中显示图像。一切正常。所有图像和列表都正确显示。但当我尝试在Kitkat 4.4.4上运行时,它会在Cardview中的图像顶部和底部显示额外的(大)填充。我只使用ImageView,没有文本,没有任何内容。 检查附加图像。 Cardview的XML代码