我们很难弄清楚为什么在executeUpdate查询上使用setParameter比使用setString,setLong要慢。
SQLQueryImpl query = session.createSQLQuery("update message set status = :status where attempt_id = :attemptId")无论何时我使用:
query.setParameter("status", Status.DONE)
query.setParameter("attemptId", id)与使用以下命令相比,它的解析速度几乎要慢10倍:
query.setString("status", Status.DONE.toString())
query.setLong("attemptId", id)我可以验证它们下面是否生成了类似的查询:
update message set status = ? where attempt_id = ?为什么setParameter()比较慢?
比起使用setParameter(),更喜欢使用setString()、setLong()
我认为它只是添加了一层,以确定要添加的类型,但应该几乎相同。
https://stackoverflow.com/questions/38310373
复制相似问题