首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hibernate SQLQueryImpl setParameter vs setString

hibernate SQLQueryImpl setParameter vs setString
EN

Stack Overflow用户
提问于 2016-07-11 23:09:08
回答 0查看 4.6K关注 0票数 2

我们很难弄清楚为什么在executeUpdate查询上使用setParameter比使用setString,setLong要慢。

代码语言:javascript
复制
  SQLQueryImpl query = session.createSQLQuery("update message set status = :status where attempt_id = :attemptId")

无论何时我使用:

代码语言:javascript
复制
query.setParameter("status", Status.DONE)
query.setParameter("attemptId", id)

与使用以下命令相比,它的解析速度几乎要慢10倍:

代码语言:javascript
复制
query.setString("status", Status.DONE.toString())
query.setLong("attemptId", id)

我可以验证它们下面是否生成了类似的查询:

代码语言:javascript
复制
update message set status = ? where attempt_id = ?

为什么setParameter()比较慢?

比起使用setParameter(),更喜欢使用setString()、setLong()

我认为它只是添加了一层,以确定要添加的类型,但应该几乎相同。

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38310373

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档