public Node createNodeUsuario(Usuario usuario) {
    Node lockNode;
    try (Transaction tx = getManagerConnection().getGraphDb().beginTx()) {
      lockNode = getManagerConnection().getGraphDb().createNode();
      tx.success();
    }

    try (Transaction tx = getManagerConnection().beginTx()) {
      Index<Node> usersIndex = getManagerConnection().getGraphDb().index().forNodes("users");
      Node userNode = usersIndex.get("login", usuario.getLogin()).getSingle();
      if (userNode != null) {
        return userNode;
      }

      tx.acquireWriteLock(lockNode);
      userNode = usersIndex.get("login", usuario.getLogin()).getSingle();
      if (userNode == null) {
        userNode = getManagerConnection().getGraphDb().createNode(DynamicLabel.label("User"));
        usersIndex.add(userNode, "login", usuario.getLogin());
        userNode.setProperty("login", usuario.getLogin());
        userNode.setProperty("nome", usuario.getNome());
        userNode.setProperty("senha", usuario.getSenha());
        userNode.setProperty("type", usuario.getType().getName());
      }
      tx.success();
      return userNode;
    }
  }
  public Usuario recuperarUsuario(Usuario usuario) {
    try (Transaction tx = getManagerConnection().beginTx()) {
      Index<Node> usersIndex = getManagerConnection().getGraphDb().index().forNodes("users");
      Node userNode = usersIndex.get("login", usuario.getLogin()).getSingle();
      if (userNode != null) {
        Usuario pUsuario = new Usuario();
        pUsuario.setNome((String) userNode.getProperty("nome"));
        pUsuario.setLogin((String) userNode.getProperty("login"));
        pUsuario.setId(userNode.getId());

        return pUsuario;
      }
    }
    return null;
    //		ExecutionEngine engine = new ExecutionEngine(ManagerConnection.getInstance().getGraphDb());
    //		ExecutionResult result;
    //		try(Transaction tx = getManagerConnection().beginTx())  {
    //			result = engine.execute("start n=node(*) where n.Type = 'AGENT' AND n.login = '******' return n");
    //			List<Usuario> listUsuario = montaLista(result);
    //			return listUsuario.isEmpty() ? null : listUsuario.get(0);
    //		}
  }