在实体上使用NamedQueries查询是否有任何显着优势?如果不是,我们可以在DAO中拥有它。请在这方面提出一些想法。
答案 0 :(得分:1)
当应用程序需要重复执行同一查询时,命名查询可提供显着的性能优势。 对此的关键概念是,无论您使用什么语法在业务层(例如,hibernate语法)中编写它们,每个查询都将最终(必须最终)作为本机查询(即数据库理解的语法) )为了执行。这种转换称为编译,被认为是一个耗时的过程。 因此,性能优势来自以下事实:命名查询通过hibernate编译为其本机语法,并且一直执行,而动态创建的查询必须在执行之前每次编译为其本机语法。