Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
将查询作为 NamedQueries 而不是实体有任何显着优势吗?如果没有,我们可以在 DAO 本身中拥有它。请在这方面提出一些想法。
当应用程序需要重复执行相同的查询时,命名查询提供了显着的性能优势。对此的关键概念是,无论您在业务层中使用什么语法(例如休眠语法)编写它们,每个查询都将最终(必须最终)作为本机查询(即您的数据库可以理解的语法) ) 以被执行。这种转换称为编译,被认为是一个耗时的过程。因此,性能优势来自这样一个事实,即命名查询被休眠一次编译成它们的本机语法并在之后执行,而动态创建的查询每次都必须在执行之前编译成它们的本机语法。