2016-09-02 11 views
0

동일한 상위 레코드에 Map으로 많은 하위 레코드를 저장합니다. 이제는 전달중인 키에 따라 하위 레코드를 제거해야합니다. 구현하기 위해 UDF를 사용할 계획입니다. Java에서 호출 할 때 로그에 길이가 0으로 표시됩니다. 이유가 무엇입니까? 그리고 이것을 고치는 방법? 감사! 자바에서Array [Long] ID를 Aerospike Record UDF에 전달하는 방법?

=>

루아 UDF에서
val ids = Array(1,2,3) 
Value.get(ids) 

=>

function remove_keys(rec, binName, rmkeys) 

    info("Value(%s) valType(%s)", tostring(rec), type(rec)); 
    info("Value(%s) valType(%s)", tostring(binName), type(binName)); 
    info("Value(%s) valType(%s)", tostring(rmkeys), type(rmkeys)); 

    info("BinName(%s)", binName) 
    info("len(%s)", tostring(#rmkeys)) 
    ... 
end 

답변

0

시도 :

String binName = "binName"; 
List<Value> rmKeys = new ArrayList<Value>(); 
rmKeys.add(Value.get("key1")); 

client.execute(policy, key, packageName, "remove_keys", Value.get(binName), Value.get(rmKeys));