0

在查看 ancriteria 示例文章时,我是休眠的新手;它说:

你无法控制 Hibernate 生成的 SQL 查询,如果生成的查询很慢,你很难调优查询,你的数据库管理员可能不喜欢它。

但是我觉得Criteria是用来生成生成SQL的where子句的,where子句只是一一添加的一些条件,与查询的性能无关,那么如何理解上面的语句呢?

4

3 回答 3

0

您不能做的一件事是强制使用索引,因为无法将这种信息(强制索引)添加到生成的 sql 中。

此外,hibernate 将从所有选定的表中加载所有列,这是一些 DBA 不喜欢的。

于 2013-10-08T03:23:15.157 回答
0

首先了解Hibernate Criteria的用法。这用于从数据库中获取数据,并且 sql 由 Hibernate 自己生成。有时由于 eager fetch 的配置,hibernate 可能会不必要地生成包含大量列和连接的 sql,这显然会影响性能。从这个意义上说,如果您无法在 HQL 中实现,则使用 HQL 甚至 SQL 更好(不应该是这种情况)

于 2013-09-24T15:25:46.400 回答
0

条件只是一种以编程方式生成查询的方法。它简化了生成查询的方式,而不是让程序员通过将字符串与谓词连接来完成这项工作。如果您使用规范模型元数据,还提供编译时错误检查,因此引用的字段实际上存在于实体中。

于 2013-09-24T15:26:23.527 回答