JPA -- named-query vs query



进行SQL查询的一种方法是jpa中的定义名为querquery

Query query = entityManager.createNamedQuery("Users.findByName");

替代方案正在运行它,而无需定义 naty naty naty

Query query = entityManager.createQuery("SELECT SELECT u FROM Users u");

从我所看到的, neququery 在实体类中的一个位置上定义了它,并且可用于无需使用SQL而使用的POJO。

两者之间有任何区别?

唯一的区别是,一个仅在班级中只能使用的字符串,是您的第二个示例之一

Query query = entityManager.createQuery(" SELECT u FROM Users u");

命名的Querqueries可以在不同的DAO中使用,而无需再次定义它们,只需致电和PersistenceProvider在定义它们时使用@NamedQueries - @NamedQuery或XML文件找到它们。

基本上,命名查询是组织查询的强大工具 定义和提高应用程序性能。

同样重要的是,一些提供商在启动时间处理了命名Querqueries内部的jpql,这对性能产生了重视,在您在YouT问题中设置的第二种情况下,Persistence Provister不了解查询存在,没有机会在启动时处理它,需要在需要时运行该过程。

最新更新