Skip to content

Commit 45bebf2

Browse files
authored
examples: Consuming results in writeTransactions (neo4j#1044)
1 parent 4ae0f2c commit 45bebf2

File tree

8 files changed

+42
-70
lines changed

8 files changed

+42
-70
lines changed

examples/src/main/java/org/neo4j/docs/driver/HelloWorldExample.java

Lines changed: 8 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@
2525
import org.neo4j.driver.GraphDatabase;
2626
import org.neo4j.driver.Result;
2727
import org.neo4j.driver.Session;
28-
import org.neo4j.driver.Transaction;
29-
import org.neo4j.driver.TransactionWork;
3028

3129
import static org.neo4j.driver.Values.parameters;
3230
// end::hello-world-import[]
@@ -51,18 +49,14 @@ public void printGreeting( final String message )
5149
{
5250
try ( Session session = driver.session() )
5351
{
54-
String greeting = session.writeTransaction( new TransactionWork<String>()
55-
{
56-
@Override
57-
public String execute( Transaction tx )
58-
{
59-
Result result = tx.run( "CREATE (a:Greeting) " +
60-
"SET a.message = $message " +
61-
"RETURN a.message + ', from node ' + id(a)",
62-
parameters( "message", message ) );
63-
return result.single().get( 0 ).asString();
64-
}
65-
} );
52+
String greeting = session.writeTransaction( tx ->
53+
{
54+
Result result = tx.run( "CREATE (a:Greeting) " +
55+
"SET a.message = $message " +
56+
"RETURN a.message + ', from node ' + id(a)",
57+
parameters( "message", message ) );
58+
return result.single().get( 0 ).asString();
59+
} );
6660
System.out.println( greeting );
6761
}
6862
}

examples/src/main/java/org/neo4j/docs/driver/PassBookmarkExample.java

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -19,18 +19,19 @@
1919
package org.neo4j.docs.driver;
2020

2121
// tag::pass-bookmarks-import[]
22+
2223
import java.util.ArrayList;
2324
import java.util.List;
2425

2526
import org.neo4j.driver.AccessMode;
27+
import org.neo4j.driver.Bookmark;
2628
import org.neo4j.driver.Record;
27-
import org.neo4j.driver.Session;
2829
import org.neo4j.driver.Result;
30+
import org.neo4j.driver.Session;
2931
import org.neo4j.driver.Transaction;
30-
import org.neo4j.driver.Bookmark;
3132

32-
import static org.neo4j.driver.Values.parameters;
3333
import static org.neo4j.driver.SessionConfig.builder;
34+
import static org.neo4j.driver.Values.parameters;
3435
// end::pass-bookmarks-import[]
3536

3637
public class PassBookmarkExample extends BaseApplication
@@ -93,27 +94,27 @@ public void addEmployAndMakeFriends()
9394
// Create the first person and employment relationship.
9495
try ( Session session1 = driver.session( builder().withDefaultAccessMode( AccessMode.WRITE ).build() ) )
9596
{
96-
session1.writeTransaction( tx -> addCompany( tx, "Wayne Enterprises" ) );
97-
session1.writeTransaction( tx -> addPerson( tx, "Alice" ) );
98-
session1.writeTransaction( tx -> employ( tx, "Alice", "Wayne Enterprises" ) );
97+
session1.writeTransaction( tx -> addCompany( tx, "Wayne Enterprises" ).consume() );
98+
session1.writeTransaction( tx -> addPerson( tx, "Alice" ).consume() );
99+
session1.writeTransaction( tx -> employ( tx, "Alice", "Wayne Enterprises" ).consume() );
99100

100101
savedBookmarks.add( session1.lastBookmark() );
101102
}
102103

103104
// Create the second person and employment relationship.
104105
try ( Session session2 = driver.session( builder().withDefaultAccessMode( AccessMode.WRITE ).build() ) )
105106
{
106-
session2.writeTransaction( tx -> addCompany( tx, "LexCorp" ) );
107-
session2.writeTransaction( tx -> addPerson( tx, "Bob" ) );
108-
session2.writeTransaction( tx -> employ( tx, "Bob", "LexCorp" ) );
107+
session2.writeTransaction( tx -> addCompany( tx, "LexCorp" ).consume() );
108+
session2.writeTransaction( tx -> addPerson( tx, "Bob" ).consume() );
109+
session2.writeTransaction( tx -> employ( tx, "Bob", "LexCorp" ).consume() );
109110

110111
savedBookmarks.add( session2.lastBookmark() );
111112
}
112113

113114
// Create a friendship between the two people created above.
114115
try ( Session session3 = driver.session( builder().withDefaultAccessMode( AccessMode.WRITE ).withBookmarks( savedBookmarks ).build() ) )
115116
{
116-
session3.writeTransaction( tx -> makeFriends( tx, "Alice", "Bob" ) );
117+
session3.writeTransaction( tx -> makeFriends( tx, "Alice", "Bob" ).consume() );
117118

118119
session3.readTransaction( this::printFriends );
119120
}

examples/src/main/java/org/neo4j/docs/driver/ReadWriteTransactionExample.java

Lines changed: 4 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -20,10 +20,9 @@
2020

2121
// tag::read-write-transaction-import[]
2222

23-
import org.neo4j.driver.Session;
2423
import org.neo4j.driver.Result;
24+
import org.neo4j.driver.Session;
2525
import org.neo4j.driver.Transaction;
26-
import org.neo4j.driver.TransactionWork;
2726

2827
import static org.neo4j.driver.Values.parameters;
2928
// end::read-write-transaction-import[]
@@ -40,28 +39,14 @@ public long addPerson( final String name )
4039
{
4140
try ( Session session = driver.session() )
4241
{
43-
session.writeTransaction( new TransactionWork<Void>()
44-
{
45-
@Override
46-
public Void execute( Transaction tx )
47-
{
48-
return createPersonNode( tx, name );
49-
}
50-
} );
51-
return session.readTransaction( new TransactionWork<Long>()
52-
{
53-
@Override
54-
public Long execute( Transaction tx )
55-
{
56-
return matchPersonNode( tx, name );
57-
}
58-
} );
42+
session.writeTransaction( tx -> createPersonNode( tx, name ) );
43+
return session.readTransaction( tx -> matchPersonNode( tx, name ) );
5944
}
6045
}
6146

6247
private static Void createPersonNode( Transaction tx, String name )
6348
{
64-
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
49+
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) ).consume();
6550
return null;
6651
}
6752

examples/src/main/java/org/neo4j/docs/driver/ResultRetainExample.java

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import java.util.List;
2424

2525
import org.neo4j.driver.Record;
26+
import org.neo4j.driver.Result;
2627
import org.neo4j.driver.Session;
2728
import org.neo4j.driver.Transaction;
2829
import org.neo4j.driver.TransactionWork;
@@ -53,19 +54,16 @@ public List<Record> execute( Transaction tx )
5354
} );
5455
for ( final Record person : persons )
5556
{
56-
employees += session.writeTransaction( new TransactionWork<Integer>()
57-
{
58-
@Override
59-
public Integer execute( Transaction tx )
60-
{
61-
tx.run( "MATCH (emp:Person {name: $person_name}) " +
62-
"MERGE (com:Company {name: $company_name}) " +
63-
"MERGE (emp)-[:WORKS_FOR]->(com)",
64-
parameters( "person_name", person.get( "name" ).asString(), "company_name",
65-
companyName ) );
66-
return 1;
67-
}
68-
} );
57+
employees += session.writeTransaction( tx ->
58+
{
59+
Result result = tx.run( "MATCH (emp:Person {name: $person_name}) " +
60+
"MERGE (com:Company {name: $company_name}) " +
61+
"MERGE (emp)-[:WORKS_FOR]->(com)",
62+
parameters( "person_name", person.get( "name" ).asString(), "company_name",
63+
companyName ) );
64+
result.consume();
65+
return 1;
66+
} );
6967
}
7068
return employees;
7169
}

examples/src/main/java/org/neo4j/docs/driver/ServiceUnavailableExample.java

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,6 @@
2626
import org.neo4j.driver.GraphDatabase;
2727
import org.neo4j.driver.Logging;
2828
import org.neo4j.driver.Session;
29-
import org.neo4j.driver.Transaction;
30-
import org.neo4j.driver.TransactionWork;
3129
import org.neo4j.driver.exceptions.ServiceUnavailableException;
3230

3331
import static java.util.concurrent.TimeUnit.SECONDS;
@@ -58,15 +56,11 @@ public boolean addItem()
5856
{
5957
try ( Session session = driver.session() )
6058
{
61-
return session.writeTransaction( new TransactionWork<Boolean>()
62-
{
63-
@Override
64-
public Boolean execute( Transaction tx )
65-
{
66-
tx.run( "CREATE (a:Item)" );
67-
return true;
68-
}
69-
} );
59+
return session.writeTransaction( tx ->
60+
{
61+
tx.run( "CREATE (a:Item)" ).consume();
62+
return true;
63+
} );
7064
}
7165
catch ( ServiceUnavailableException ex )
7266
{

examples/src/main/java/org/neo4j/docs/driver/TransactionFunctionExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ public void addPerson( final String name )
3838
try ( Session session = driver.session() )
3939
{
4040
session.writeTransaction( tx -> {
41-
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
41+
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) ).consume();
4242
return 1;
4343
} );
4444
}

examples/src/main/java/org/neo4j/docs/driver/TransactionMetadataConfigExample.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ public void addPerson( final String name )
4646
.withMetadata( transactionMetadata ).build();
4747
session.writeTransaction( tx ->
4848
{
49-
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) );
49+
tx.run( "CREATE (a:Person {name: $name})", parameters( "name", name ) ).consume();
5050
return 1;
5151
}, txConfig );
5252
}

examples/src/test/java/org/neo4j/docs/driver/ExamplesIT.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ private void write( final String query, final Value parameters )
110110
{
111111
session.writeTransaction( tx ->
112112
{
113-
tx.run( query, parameters );
113+
tx.run( query, parameters ).consume();
114114
return null;
115115
} );
116116
}

0 commit comments

Comments
 (0)