Hi,
I've done a migration to neo4j go driver v5. I'm getting an error when returning nil
from the neo4j.ManagedTransactionWorkT
function. Full working example:
func HelloWorld() error {
ctx := context.Background()
driver, err := neo4j.NewDriverWithContext("bolt://localhost:7687", neo4j.BasicAuth("neo4j", "password", ""))
if err != nil {
return err
}
defer driver.Close(ctx)
session := driver.NewSession(ctx, neo4j.SessionConfig{AccessMode: neo4j.AccessModeWrite})
defer session.Close(ctx)
_, err = neo4j.ExecuteWrite(ctx, session, func(transaction neo4j.ManagedTransaction) (any, error) {
result, err := transaction.Run(ctx,
"CREATE (a:Greeting) SET a.message = $message",
map[string]any{
"message": "hello, world",
})
if err != nil {
return nil, err
}
return nil, result.Err()
})
if err != nil {
return err
}
return nil
}
The result is: Error: interface conversion: interface is nil, not go.shape.interface {}_0
I don't get this error when doing the same thing from session.ExecuteWrite
, should I prefer using session.ExecuteWrite
when just returning an error?