Java 更新查询不使用OrientDB中的eval()函数和参数
在我的项目中,我正在使用Orientdb,更新查询中存在一些问题Java 更新查询不使用OrientDB中的eval()函数和参数,java,orientdb,Java,Orientdb,在我的项目中,我正在使用Orientdb,更新查询中存在一些问题 int amt = 100; int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - "+ amt +"') where eval('id - "+amt+"') > 0")).execute(); 这很好用。但是, int recordsUpdated = db.command(new OCommandSQL("updat
int amt = 100;
int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - "+ amt +"') where eval('id - "+amt+"') > 0")).execute();
这很好用。但是,
int recordsUpdated = db.command(new OCommandSQL("update A set id = eval('id - ?') where eval('id - ?') > 0")).execute(100,100);
或
Map params=newhashmap();
参数卖出价(“金额”、“100”);
int recordsUpdated=db.command(新的OCommandSQL(“更新集合id=eval('id-:amt'),其中eval('id-:amt')>0”)。执行(参数);
它不起作用。
请帮我做些工作。在SQL中,变量的替换并不适用于所有地方,特别是在字符串中。您可以像第一个示例中那样计算该值,或者尝试使用上下文变量,例如:
OCommandSQL cmd = new OCommandSQL("update A set id = eval('id - $id') where eval('id - $id') > 0");
cmd.getContext().setVariable( "id", 100 );
int recordsUpdated = db.command(cmd).execute();
OCommandSQL cmd = new OCommandSQL("update A set id = eval('id - $id') where eval('id - $id') > 0");
cmd.getContext().setVariable( "id", 100 );
int recordsUpdated = db.command(cmd).execute();