- Hibernate命名查询以对象查询语言(JPQL或HQL)表示,因此Hibernate需要首先将它们转换为SQL。命名查询存储在NamedQueryRepository中,每个查询由NamedQueryDefinition表示。
由于用户可以动态添加过滤器,查询结果限制,锁定和提示,因此Hibernate在执行之前无法预编译HQL / JPQL。
- Hibernate还为每个SELECT和DML语句使用PreparedStatement,因此,如果JDBC驱动程序支持它并且不通过在单个数据库请求(例如MySQL,PostgreSQL)中复用prepare和execute来模拟prepare阶段,则还可以获取数据库语句预编译。 )。



