在我的activepivot解决方案中,我有一个商店,里面有桌子和每笔交易的货币。
例如:
- 1,eur,DeskA,10
- 2,eur,桌B,18
- 3,gbp,DeskA,17
- 4,美元,DeskA,54
我有很多问题想在哪里找到所有记录包含deskA和特定但不断变化的货币。
要执行这三个查询:
- DeskA,eur
- DeskA,美元
- DeskA,gbp
我会使用预先准备好的语句来避免多次解析查询。activepivot中有类似的功能吗?
这就是定义预编译查询的方法
IRecordQuery query = new RecordQuery("storeName", Equal("attributeUsedForSearchHere").parametrized(0), Arrays.asList("attribute2", "attribute3", "attribute4"));
compiledQuery = datastore.getQueryManager().compile(query);
这就是你如何执行它
ICursor cursor = datastore.getQueryManager().execute(compiledQuery , new Object[] { valueOfAttributeUsedForSearchHere} );
基本上在上面你使用attributeUsedForSearchHere作为一个属性,你将使用它来基于相等的条件进行搜索;当然,你可能有几个特点。
然后,一旦执行了查询,就可以读取其他属性(attribute2、3和4),如下所示:
cursor.getRecord().read("attribute2")