Документация OrientDB говорит мне, что именованные параметры для операторов SQL возможны для всех трех вызовов SQL:
- дб-запрос
- db-команда и
- дб-казнить
В действительности эти именованные параметры работают для запроса и команды, но не для выполнения. Если я использую именованные параметры, парсер, по-видимому, интерпретирует все из них как ноль.
try (final ODatabaseSession db = orientDB.open(DB, USERNAME, PASSWORD)) {
Map<String, Object> params = new HashMap<>();
params.put("sessionid", "15");
params.put("uri", "www.stackoverflow.com");
params.put("date", new Date());
String script =
"BEGIN;"+
"LET $a = CREATE VERTEX Session SET id = :sessionid , timestamp = :date ;"+
"LET $b = CREATE VERTEX Content SET uri = :uri , timestamp = :date ;"+
"LET $edge = CREATE EDGE E from $a to $b;"+
"COMMIT;"+
"RETURN $a;";
OResultSet rs = db.execute("sql", script, params);
while(rs.hasNext()){
OResult row = rs.next();
logger.info(row.getProperty("id"));
}
}
Все параметры в приведенном выше сценарии остаются пустыми.
У меня нет идей, что попробовать дальше.
Я работаю с OrientDB v3.0RC1