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); // } }