我正在尝试将Hibernate Criteria与命名的性能查询进行比较.我知道这一切都取决于实际的查询本身,最后一个词是关于他们如何在运行时分析.仍然,试图理清每个内容.
我试图将Q分为两部分,并在两者上寻找验证/更正:
第1部分 - Hibernate Criteria和命名查询的工作原理如下:
标准适用于参数.在运行时,查询不需要解析 - 有几个搜索和"存在形式"参数,如命令结果,返回它们可滚动等.没有读取/验证这一点,但Criteria工作的字段索引(根据它们设置的参数)使速度更快.
因此,与普通HQL相比,Criteria的优势在于它在执行过程中的速度.
命名查询与HQL具有相同的优势 - 查询在启动时被解析一次.然后从应用程序中的任何需要执行.
第2部分 - 比较两者:
所以在这张照片中,
Criteria和named-queries如何相互比较?
标准适用于跨多个表和多个参数的复杂查询 - 具有优化的方法,从而使查询快速(?)
命名查询具有"定义一次使用 - 无处不在"的优点,并且对于"轻量级"查询非常好 - 通常在单个表上具有少量参数的较不复杂的搜索.频繁查询甚至更好.
注意:看到非常有用的Hibernate Criteria vs HQL:哪个更快?在其他一些讨论中.
TIA.