gpt4 book ai didi

java - createQuery 与 createNativeQuery,更新/删除语句的性能差异

转载 作者:行者123 更新时间:2023-11-30 01:42:13 25 4
gpt4 key购买 nike

以下之间是否存在性能差异:

entityManager.createQuery("UPDATE MyTable SET coll1 = :someValue").setParameter("someValue").executeUpdate();

entityManager.createNativeQuery("UPDATE MyTable SET coll1 = :someValue").setParameter("someValue").executeUpdate();

如果是,它是否足够高以使用一种方法而不是另一种方法?

我正在对 Hibernate 和 Entity Framework 核心进行性能比较。在 EF core 中,这种事情只能使用 native SQL 来完成(好吧,有第三方库),所以我想知道是否应该将所有 createQuery().executeUpdate() 切换为 createNativeQuery().executeUpdate()我的 hibernate 项目。

最佳答案

与任何此类性质的事情一样,您应该对您的数据和系统进行测试。

但是,createNativeQuery() 接口(interface)旨在让您直接调用 SQL,而不是通过 ORM 映射。这里有一个简单的更新语句,因此生成的 SQL 应该非常接近 native SQL。

您不依赖数据库的任何底层功能。通过 ORM 进行转换可能会产生一些额外的开销 - 但您已经通过选择使用 ORM 接受了该开销。

我想说坚持使用该框架,除非测试表明性能有明显的损失。

关于java - createQuery 与 createNativeQuery,更新/删除语句的性能差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59553455/

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