Java クライアント ソース
関数選択にはインデックスがあります:
public java.util.List select(int space, int index, java.lang.Object key, int offset, int limit, int iterator)
ただし、スペースとキーのみを指定して、置換、更新、および削除します。
public java.util.List delete(int space, java.lang.Object key)
削除は主キーに対して実行されるため、主キーによって一意性が強制されるため、これはアトミック操作です。セカンダリ インデックスは一意である場合もありますが、そうではない場合もあるため、トランザクションを開始して、一意でないセカンダリ インデックス キーの原子性を確保する必要があります。これが、Java のセカンダリ インデックスに削除/更新/挿入がまだない理由です。tarantool がリモートで開始されたトランザクションを許可するかどうかは良い質問ですが、それが役立つとは思えません。
したがって、それを機能させるには、次のことを行う必要があります。
public List call(String var1, Object... var2);
例えば
-- Lua function
function deleteFromSpaceByUniqueSecondaryIndex(secondaryId)
box.space.YourSpace.index.yourSecondaryIdx:delete(secondaryId)
end
.....
//call it from Java like that
tarantoolConn.call("deleteFromSpaceByUniqueSecondaryIndex", secondaryId);