Neo4j OGM + Spring config doesn't work

In relation to this post we've also tried this version with the same issue.

package com.caraer.Caraer.config;

import com.caraer.Caraer.model.User;
import jakarta.annotation.PostConstruct;
import org.neo4j.ogm.config.Configuration;
import org.neo4j.ogm.config.DatabaseSelection;
import org.neo4j.ogm.config.DatabaseSelectionProvider;
import org.neo4j.ogm.session.Session;
import org.neo4j.ogm.session.SessionFactory;
import org.springframework.security.core.context.SecurityContextHolder;

public class Neo4jService {

    private Session mainDatabaseSession;
    private Session userDatabaseSession;

    private SessionFactory mainFactory;
    private SessionFactory userFactory;

    private GenerateUuid generateUuid;

    // Private constructor to prevent instantiation
    private Neo4jService() {
        // Avoid initialization here
    }

    @PostConstruct
    private void init() {
        generateUuid = new GenerateUuid();

        Configuration mainConfiguration = new Configuration.Builder()
                .uri("bolt://localhost:7687")
                .connectionLivenessCheckTimeout(10)
                .connectionPoolSize(50)
                .database("neo4j")
                .credentials("neo4j", "***")
                .build();

        Configuration userConfiguration = new Configuration.Builder()
                .uri("bolt://localhost:7687")
                .connectionLivenessCheckTimeout(10)
                .connectionPoolSize(50)
                .databaseSelectionProvider(new UserDatabase())
                .credentials("neo4j", "***")
                .build();

        this.mainFactory = new SessionFactory(mainConfiguration, "com.caraer.Caraer");
        this.userFactory = new SessionFactory(userConfiguration, "com.caraer.Caraer");

        this.mainFactory.register(generateUuid);
        this.userFactory.register(generateUuid);

        this.mainDatabaseSession = mainFactory.openSession();
        this.userDatabaseSession = userFactory.openSession();
    }

    // Static inner class for lazy initialization
    private static final class InstanceHolder {
        private static final Neo4jService INSTANCE = new Neo4jService();

        static {
            INSTANCE.init(); // Ensure initialization is done only once
        }
    }

    public static Neo4jService getInstance() {
        return InstanceHolder.INSTANCE;
    }

    public Session getMainSession() {
        return InstanceHolder.INSTANCE.mainDatabaseSession;
    }

    public Session getUserSession() {
        return InstanceHolder.INSTANCE.userDatabaseSession;
    }
}

class UserDatabase implements DatabaseSelectionProvider {
    @Override
    public DatabaseSelection getDatabaseSelection() {
        User user = (User) SecurityContextHolder.getContext().getAuthentication().getPrincipal();
        if (user == null) {
            return null;
        } else {
            return DatabaseSelection.select(user.getDatabase());
        }
    }
}