与实体相比,将查询作为 NamedQueries 有什么显着优势吗?如果没有,我们可以在 DAO 本身中拥有它。请在这方面提出一些想法。
最佳答案
当应用程序需要重复执行同一查询时,命名查询可提供显着的性能优势。 这个的关键概念是每个查询,无论您使用什么语法将它们写入您的业务层(例如 hibernate 语法),都将(必须结束)作为 native 查询(即您的数据库理解的语法) ) 以便执行。这种转换称为编译,被认为是一个耗时的过程。 因此,性能优势来自这样一个事实,即命名查询被 hibernate 编译为它们的 native 语法一次并在之后执行,而动态创建的查询必须在执行之前每次都被编译为它们的 native 语法。
关于java - 命名查询的优点和缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6568296/