的Hibernate 3.3Hibernate - HQL查询产生的SQL是否被hibernate系统缓存?
如果我有一个动态生成hibernate的HQL查询一样
String query = "from Foo where ";
if(beforeDate != null) then query+=" createdBefore < :before";
session.createQuery(query);
代码是否会得到关于分贝执行得到由SessionManager缓存生成的SQL因此,如果同样的查询一直执行,不必每次都重新编译,或者每次都会重新进行重新解析和重建
我在想,以增加我的数据库代码的表现我得写一些静态命名查询休眠,以减少解析开销,如果有一些。
SQL是每次生成。该查询不被分析第二次在同一个会话(前提是你使用的createQuery(查询)的结果相同) – bestsss 2011-02-26 01:04:37
阿那将是致命的问题,我认为我们,所以基本上你说,每次的createQuery被调用时,它的重 - 正确的?如果这样我们可能应该改变我们的模式。 – toths 2011-02-26 01:06:15
不,如果使用命名查询,则不会解析该字符串,但会生成sql。我对SQL的生成几乎感到乐观,但我可能需要检查源代码。我不使用查询自己,但标准。如tdavies指出的, – bestsss 2011-02-26 01:17:34