Apache Ignite 缓存中的预处理语句支持 API
Prepared Statement support in Apache Ignite Cache API
IgniteCache API 是否支持 Prepared statement 之类的工具来避免每次都进行查询解析?我看到有人为此提出了一个 Jira 问题,它说它已在 1.5 版中解决。0.final,
https://issues.apache.org/jira/browse/IGNITE-1856 ,但我在 Apache Ignite 网站上找不到任何相关文档。我知道我们可以通过 JDBC Connection 连接来使用准备好的语句,但这不适合我的用例。
我的代码如下所示,将使用不同的参数一次又一次地调用此查询,
IgniteCache<Integer,Subscriber> subscriberCache= rocCachemanager.getCache("subscriberCache");
SqlQuery<Integer, Subscriber> sql = new SqlQuery(Subscriber.class,
"from Subscriber where Subscriber.MSISDNNo=? and Subscriber.status='Active'");
sql.setArgs("SomeNumber");
QueryCursor<Entry<Integer,Subscriber>> cursor =ss.query(sql);
语句会自动缓存,无需任何操作。如果你的查询文本没有改变,只有参数改变了,Ignite 将不会再次解析查询。
IgniteCache API 是否支持 Prepared statement 之类的工具来避免每次都进行查询解析?我看到有人为此提出了一个 Jira 问题,它说它已在 1.5 版中解决。0.final, https://issues.apache.org/jira/browse/IGNITE-1856 ,但我在 Apache Ignite 网站上找不到任何相关文档。我知道我们可以通过 JDBC Connection 连接来使用准备好的语句,但这不适合我的用例。
我的代码如下所示,将使用不同的参数一次又一次地调用此查询,
IgniteCache<Integer,Subscriber> subscriberCache= rocCachemanager.getCache("subscriberCache");
SqlQuery<Integer, Subscriber> sql = new SqlQuery(Subscriber.class,
"from Subscriber where Subscriber.MSISDNNo=? and Subscriber.status='Active'");
sql.setArgs("SomeNumber");
QueryCursor<Entry<Integer,Subscriber>> cursor =ss.query(sql);
语句会自动缓存,无需任何操作。如果你的查询文本没有改变,只有参数改变了,Ignite 将不会再次解析查询。