JPA namedquery与文字改为事先准备好的声明(jpa namedquery with li

2019-10-21 19:13发布

我有一个JPA(OpenJPA的-2.2.1)namedquery,有一些硬编码的文字(例如:a.status <>“X”) - 问题是在运行时生成的查询实际上是一个事先准备好的声明(a.status <>? )

有没有办法迫使JPA运行查询的是什么? (我想保持它作为namedquery,没有实现它作为本地查询或其他方式)

我想运行查询一样,是因为性能的原因 - 静态查询的数据库客户端运行在约2秒,而准备好的声明从JUNIT在3-4分钟解雇。 (我们在与一些查询预处理语句过去的性能问题,并改变静态查询的伎俩)

Answer 1:

设置查询提示openjpa.hint.UseLiteralInSQL=true ( REF )。 请参阅此IBM技术的更多细节。



文章来源: jpa namedquery with literals changed to prepared statement