ArangoDB Java驱动程序:在事务中放置多个参数

ArangoDB Java驱动程序:在事务中放置多个参数,java,arangodb,Java,Arangodb,我需要在ArangoDB的JAVA驱动的事务中放置多个参数 它使用单个参数: public String save(User user) throws ArangoDBException { TransactionOptions options = new TransactionOptions().params(user).writeCollections(collectionName); String action = "function (params) { "

我需要在ArangoDB的JAVA驱动的事务中放置多个参数

它使用单个参数:

public String save(User user) throws ArangoDBException {

    TransactionOptions options = new TransactionOptions().params(user).writeCollections(collectionName);
    String action = "function (params) { "
            + "var db = require('internal').db; "
            + "var doc = params;"
            + "db.users.save(doc);"
            + "}";

    return db.transaction(action, String.class, options);
}
但是如果我需要传递多个参数,那么我就被卡住了。试图传递map、arraylist或array,但似乎不起作用:

public void save(User user, User user2) throws ArangoDBException {
    Map<String, Object> parameters = new MapBuilder()
            .put("user", user)
            .put("user2" user2)
            .get();


    TransactionOptions options = new TransactionOptions().params(parameters).writeCollections(collectionName);
    String action = "function (params) { "
            + "var db = require('internal').db; "
            + "var doc = params['user'];"
            + "var doc2 = params['user2'];"
            + "db.users.save(doc);"
            + "db.users.save(doc2);"
            + "}";

    db.transaction(action, String.class, options);
}
public void save(User-User,User-user2)引发ArangoDBException{
映射参数=新的MapBuilder()
.put(“用户”,用户)
.put(“user2”user2)
.get();
TransactionOptions=new TransactionOptions().params(参数).writeCollections(collectionName);
String action=“函数(参数){”
+“var db=require('internal').db;”
+“var doc=params['user'];”
+“var doc2=params['user2'];”
+“db.users.save(doc);”
+“db.users.save(doc2);”
+ "}";
事务(action、String.class、options);
}

必须序列化地图:

TransactionOptions().params(db.util().serialize(params)).writeCollections(collectionName, "users2");

必须序列化地图:

TransactionOptions().params(db.util().serialize(params)).writeCollections(collectionName, "users2");

不再需要您的变通方法。
TransactionOptions
中缺少的映射/列表/数组自动序列化是java驱动程序中的一个错误,该错误已在4.1.5版中修复。不再需要解决方法。
TransactionOptions
中缺少映射/列表/数组的自动序列化是java驱动程序中的一个错误,该错误已在版本4.1.5中修复