带有文字的 jpa namedquery 更改为准备好的语句
jpa namedquery with literals changed to prepared statement
我有一个 jpa (openjpa-2.2.1) namedquery,它有一些硬编码文字(例如:a.status <> 'X')- 问题是在 运行生成的查询实际上是一个准备好的语句 (a.status <> ?)
有没有办法按原样强制 JPA 运行 查询?(我想将其保留为命名查询,而不是将其实现为本机查询或其他方式)
由于性能原因,我想 运行 按原样进行查询 - 数据库客户端中的静态查询 运行s 在大约 2 秒内完成,而准备好的语句在 3 秒内从 JUNIT 触发 - 4分钟(我们过去曾遇到性能问题,为某些查询准备了语句,改用静态查询就可以解决问题)
设置查询提示openjpa.hint.UseLiteralInSQL=true
(ref). See this IBM technote了解更多详情。
我有一个 jpa (openjpa-2.2.1) namedquery,它有一些硬编码文字(例如:a.status <> 'X')- 问题是在 运行生成的查询实际上是一个准备好的语句 (a.status <> ?)
有没有办法按原样强制 JPA 运行 查询?(我想将其保留为命名查询,而不是将其实现为本机查询或其他方式)
由于性能原因,我想 运行 按原样进行查询 - 数据库客户端中的静态查询 运行s 在大约 2 秒内完成,而准备好的语句在 3 秒内从 JUNIT 触发 - 4分钟(我们过去曾遇到性能问题,为某些查询准备了语句,改用静态查询就可以解决问题)
设置查询提示openjpa.hint.UseLiteralInSQL=true
(ref). See this IBM technote了解更多详情。