好像不太一样吧,createQuery()是创建一个查询连接,而find()方法是查找一个东东并返回结果,查找之后并不存在连接关系

解决方案 »

  1.   

    good question啊有兴趣的朋友可以看看hibernate的源码吧现在手头没有源码   不过以前看过  凭印象说说吧createQuery仅仅是生成一个Query的对象  同时初始化查询缓存  但是实际的queryString并没有提交到数据库  就这点来看  这是和find的最大视觉区别 而find方法执行后会讲查询请求提交到数据库  而createQuery进行.iterate()或者.list()后才提交查询个人感觉两者最大的本质不同在于createQuery()操作可以进行.iterate()来延迟加载数据结果集  这在数据量很大的时候是非常必要的   而find直接一次性返回了List格式的结果集  通常来讲在小数据量精确查询的时候比较受欢迎嗯  robbin说过  hibernate入门看文档  精通看源码  ^_^