Hibernate中的setMaxResults(N)如何工作?

我正在使用带有Hibernate的MS SQL Server 2008。我的问题是Hibernate如何实现setMaxResults

采取以下简单方案。

如果我有一个返回100行的查询,并且如果我将1传递给setMaxResults,这会影响SQL Server本身返回的结果(就像运行一条select

top 1语句一样),还是Hibernate首先获取所有结果(在这种情况下为所有100行)并挑选最高的自己?

我问的原因是,当行数开始增加时,它将出现巨大的性能问题。

谢谢。

回答:

Hibernate将为所有支持限制查询的方言生成一个限制类型查询。由于SQLServerDialect支持此功能(请参阅org.hibernate.dialect.SQLServerDialect.supportsLimit().getLimitString()),您将获得select

top 1-query。

如果您想绝对确定,可以打开调试日志记录,或启用showSql-option和test。

以上是 Hibernate中的setMaxResults(N)如何工作? 的全部内容, 来源链接: utcz.com/qa/417287.html

回到顶部