diff --git a/driver/src/main/java/org/neo4j/driver/SessionConfig.java b/driver/src/main/java/org/neo4j/driver/SessionConfig.java index 99f36a5dfe..5abb9153c1 100644 --- a/driver/src/main/java/org/neo4j/driver/SessionConfig.java +++ b/driver/src/main/java/org/neo4j/driver/SessionConfig.java @@ -224,16 +224,40 @@ public Builder withDefaultAccessMode(AccessMode mode) { } /** - * Set the database that the newly created session is going to connect to. + * Sets target database name for queries executed within session. *

- * For connecting to servers that support multi-databases, - * it is highly recommended to always set the database explicitly in the {@link SessionConfig} for each session. - * If the database name is not set, then session defaults to connecting to the default database configured in server configuration. + * This option has no explicit value by default, as such it is recommended to set a value if the target database + * is known in advance. This has the benefit of ensuring a consistent target database name throughout the + * session in a straightforward way and potentially simplifies driver logic, which reduces network communication + * and might result in better performance. *

- * For servers that do not support multi-databases, leave this database value unset. The only database will be used instead. + * Cypher clauses such as USE are not a replacement for this option as Cypher is handled by the server and not + * the driver. + *

+ * When no explicit name is set, the driver behavior depends on the connection URI scheme supplied to the driver + * on instantiation and Bolt protocol version. + *

+ * Specifically, the following applies: + *

* - * @param database the database the session going to connect to. Provided value should not be {@code null}. - * @return this builder. + * @param database the target database name, must not be {@code null} + * @return this builder */ public Builder withDatabase(String database) { requireNonNull(database, "Database name should not be null.");