gpt4 book ai didi

sql - 查询、 native 查询、命名查询和类型化查询之间的区别

转载 作者:行者123 更新时间:2023-12-01 17:54:36 27 4
gpt4 key购买 nike

查询、 native 查询、命名查询和类型化查询之间有什么区别? “独立”查询是否存在,或者它只是一个缩写?在我看来, native 查询是用简单 sql 编写的查询,而命名查询与实体(hibernate-mapping)相关。有人可以简单解释一下吗?

最佳答案

查询

查询是指JPQL/HQL查询,其语法类似于SQL,通常用于执行DML语句(CRUD操作)。

在 JPA 中,您可以使用 entityManager.createQuery() 创建查询。您可以查看API了解更多详情。

在 Hibernate 中,您使用 session.createQuery()"

NativeQuery

原生查询是指实际的sql查询(指实际的数据库对象)。这些查询是可以使用数据库客户端直接在数据库中执行的sql语句。

JPA:entityManager.createNativeQuery()Hibernate(非 JPA 实现):session.createSQLQuery()

命名查询

与常量的定义方式类似。 NamedQuery 是通过给查询命名来定义查询的方式。您可以在 hibernate 中的映射文件中定义它,也可以在实体级别使用注释。

类型化查询

TypedQuery 为您提供了在创建查询时提及实体类型的选项,因此此后的任何操作都不需要显式转换为预期类型。而普通的 Query API 不会返回您期望且需要转换的确切类型的对象。

关于sql - 查询、 native 查询、命名查询和类型化查询之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60743533/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com