为什么在orientdb中获取Invalid关键字:PROPERTY错误?

时间:2016-03-31 21:14:04

标签: java orientdb tinkerpop

我是orientdb的新手,并尝试从java代码库运行以下命令,但获取Invalid关键字:PROPERTY错误。同样的命令在orientdb工作室中完美无缺。无法理解为什么它不能通过代码工作。

CREATE CLASS User
CREATE PROPERTY User.firstName String
CREATE PROPERTY User.password String
ALTER PROPERTY User.password NOTNULL = true

我正在使用tinkerpop java库进行开发。以下是执行命令的代码。

 OrientGraph graph = graphFactory.getTx();
 int modified = graph.command(
                          new OCommandSQL(command)).execute();

感谢。

1 个答案:

答案 0 :(得分:1)

我已经能够重现你的问题,你不能将所有这些指令放在变量命令中,你必须单独运行它们,我给你两种方法:

第一次尝试

        OrientGraphFactory graphFactory=new OrientGraphFactory(path+DB);
        OrientGraph graph=graphFactory.getTx();

        List<String> Command=new ArrayList<String>();
        Command.add("CREATE CLASS User");
        Command.add("CREATE PROPERTY User.firstName String");
        Command.add("CREATE PROPERTY User.password String");
        Command.add("ALTER PROPERTY User.password NOTNULL true");

        for(int i=0;i<Command.size();i++)
        {
            String command=Command.get(i);
            graph.command(new OCommandSQL(command)).execute();
        }

第二次尝试

        String command="CREATE CLASS User";
        int modified=graph.command(new OCommandSQL(command)).execute();

        String command2="CREATE PROPERTY User.firstName String";
        int modified2=graph.command(new OCommandSQL(command2)).execute();

        String command3="CREATE PROPERTY User.password String";
        int modified3=graph.command(new OCommandSQL(command3)).execute();

        String command4="ALTER PROPERTY User.password NOTNULL true";
        graph.command(new OCommandSQL(command4)).execute();

希望有所帮助