我有一个包含命名查询的带注释实体。该查询包含3个位置参数标记。
在运行时,参数已设置,并且在语句存储在DB2缓存中之前将它们绑定。结果是缓存充满了许多类似的SQL语句,并且每个语句都被反复绑定。 有没有办法执行像预处理语句这样的命名查询,以便在DB2缓存中将sql绑定并存储一次,带有问号?
我使用WLS 10.2作为应用程序服务器,eclipselink作为持久性提供程序,DB2作为数据库。
我尝试使用属性
配置eclipselinkproperty name =“eclipselink.jdbc.bind-parameters”value =“false”
但无论如何(默认为true),SQL语句与绑定文字一起存储而不是?在DB2缓存中。
期待任何提示或答案。
感谢。
答案 0 :(得分:0)
您需要使用,
property name =“eclipselink.jdbc.bind-parameters”value =“true”
这是默认值,false将阻止语句缓存。
您还应该启用语句缓存。如果使用DataSource,则需要在DataSource中进行配置。如果使用EclipseLink连接池,则可以使用
property name =“eclipselink.jdbc.cache-statements”value =“true”