预编译的查询由数据库供应商(例如oracle,sql server等)预先编译和缓存,因此对于诸如prepared语句之类的后续调用,它们可以更快。
在“hibernate命名”中,据说查询是在Web服务器启动时预先编译的。这是否意味着所有查询都会在服务器启动时自动触发,以便数据库供应商可以对其进行预编译,或者在hibernate上下文中进行预编译具有不同的含义?
由于用户可以动态添加过滤器,查询结果限制,锁定和提示,因此Hibernate在执行之前无法预编译HQL / JPQL。