Article DetailsDetailsHelp DetailsThe Neo4j official Java driver's session object has a method to explicitly mark queries as read only. Version 4 of the Neo4j Java driver uses the readTransaction function: public List<String> getActors(String movieName) { String readQuery = "MATCH (p:Person)-[:ACTED_IN]->(m) " + "WHERE toLower(m.title) CONTAINS toLower($title) " + "RETURN DISTINCT p.name as actorsTx"; try (Session session = driver.session()) { return session.readTransaction(tx -> { List<String> actors = new ArrayList<>(); Result result = tx.run(readQuery,parameters("title", movieName)); while (result.hasNext()) { actors.add(result.next().get(0).asString()); } for (String a : actors) { System.out.println(String.format("Found actor: %s", a)); } return actors; }); } For Versions 5 and 6 of the Neo4j Java driver, readTransaction was deprecated and replaced with executeRead: public List<String> getActors(String movieName) { String readQuery = "MATCH (p:Person)-[:ACTED_IN]->(m) " + "WHERE toLower(m.title) CONTAINS toLower($title) " + "RETURN DISTINCT p.name as actorsTx"; try (Session session = driver.session()) { return session.executeRead(tx -> { List<String> actors = new ArrayList<>(); Result result = tx.run(readQuery,parameters("title", movieName)); while (result.hasNext()) { actors.add(result.next().get(0).asString()); } for (String a : actors) { System.out.println(String.format("Found actor: %s", a)); } return actors; }); } More information on using Neo4j's Java driver Build applications with Neo4j and JavaInformationTitleHow to mark queries as READ transactions in the official Neo4j Java driver?Article Created Date3/15/2024, 10:57 PMURL Name7182388158483-How-to-mark-queries-as-READ-transactions-in-the-official-Neo4j-Java-driverLast Modified Date5/6/2026, 4:07 PM