es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Convert GraphTraversal> into Java8 stream Convertir GraphTraversal> en flujo de Java8

Tengo como resultado una consulta a graphDB que devuelve GraphTraversal<Vertex, Map<Object, List>> valores. Usando los métodos predeterminados values.iterate().toStream() debería devolver un Stream de Stream<Map<Object, List>> que puedo manejar como un flujo de Java8, pero por alguna razón no funciona, repito, usando los métodos predeterminados de la API de gemlin para obtener el flujo.

Nota: Usando un while puedo iterar sobre él, eso está bien, pero necesito realizar algunas operaciones más complejas que se simplificarán usando Java8 Streams, pero, como dije, no está funcionando, incluso usando los métodos predeterminados de tinkerpop. ¿Alguna idea?

No hay errores, pero el flujo está vacío por alguna razón.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Según la información proporcionada, es difícil determinar la causa exacta del problema. Sin embargo, aquí hay algunas sugerencias que pueden ayudar a resolver el problema:

    1. Verifique si la consulta realmente devuelve algún valor. Si la consulta devuelve un conjunto de resultados vacío, es de esperar que también esté vacío el flujo.
    2. Verifique que el objeto GraphTraversal se esté ejecutando correctamente. Intente ejecutar la recorrida manualmente usando values.iterate() o values.toList() para verificar si devuelve los resultados esperados.

    3. Asegúrese de que la versión de la API de tinkerpop que se está utilizando sea compatible con Java 8 streams. Es posible que la versión que se está utilizando no admita operaciones de flujo de Java 8.

    4. Considere utilizar un enfoque diferente para convertir el objeto GraphTraversal en un flujo de Java 8. Por ejemplo, podría utilizar la clase StreamSupport para crear un flujo a partir del iterador de recorrida:

      Stream<><object, list="">> stream = StreamSupport
          .stream(Spliterators.spliteratorUnknownSize(values, Spliterator.ORDERED), false)
          .map(e -> e.getValue());
      

      Este código crea un flujo a partir del objeto GraphTraversal utilizando la interfaz Spliterator para recorrer los resultados de la recorrida.

    5. Si todo lo demás falla, considere publicar el problema en la lista de correo de Tinkerpop o enviar un informe de error al repositorio de Tinkerpop en GitHub. Esto puede ayudar a identificar y resolver cualquier problema subyacente con la API.</object,>

Comments are closed.