2015-11-30 2 views
0

Я программно загружается файл, содержащий операторы Osql, чтобы создать схему моей БД с помощью Blueprint API, в частности, я создаю БД в режиме plocal, используя при создании экземпляра класса OrientGraphNoTx:orientDB `OrientGraphNoTx` Super-class V; не существует

val graph = new OrientGraphNoTx(s"plocal:$dbPath", "admin", "admin") 

Я получаю странные ошибки о том, что класс V не существует в моей базе данных:

Exception in thread "main" com.orientechnologies.orient.core.sql.OCommandSQLParsingException: Error on parsing command at position #29: Super-class V; not exists 
Command: CREATE CLASS Employee EXTENDS V; 

Вот некоторые примеры кода генерации ошибки:

def main(args: Array[String]) { 
    val graph = new OrientGraphNoTx(s"plocal:C:\\Users\\alberto\\tmp\\tmp\\test_orient", "admin", "admin") 
    val cmd = "CREATE CLASS Employee EXTENDS V;" 
    graph.command(new OCommandSQL(cmd)).execute() 
    graph.shutdown(true) 
    } 

Как я видел, что несколько человек имел подобную проблему и решить ее, указав ключевое слово их CREATE DATABASE заявления, однако, я полагаю, что система уже должна знать, что я работаю с графиком, так как я используя OrientGraphNoTx. Я пытался так или иначе, чтобы добавить CREATE DATABASE заявление в мой сценарий, но, как и ожидалось, я получил сообщение об ошибке:

Exception in thread "main" com.orientechnologies.orient.core.command.OCommandExecutorNotFoundException: Cannot find a command executor for the command request: sql.CREATE DATABASE plocal:C:\Users\alberto\tmp\tmp\synth_1000 admin admin plocal graph 

Я использую банки, включенные в lib каталог OrientDB 2.1.4.

Кто-нибудь знает, как решить эту проблему?

+0

Вы можете разместить весь код? –

+0

Привет @AlessandroRota, я отредактировал вопрос, добавив код, генерирующий ошибку, и версию OrientDB, которую я использую. Благодаря! – Alberto

ответ

1

1) Удалить ; так что: CREATE CLASS Employee EXTENDS V

2) CREATE DATABASE не является командой SQL, а консольная команда

+0

пункт 1) сделал это! благодаря! О пункте 2) знаете ли вы, есть ли специальный класс, который я должен использовать вместо 'OCommandSQL'? – Alberto

+0

О, извините, вы имели в виду 'create database', а не' create class'. Вы можете игнорировать мой вопрос :) – Alberto

Смежные вопросы