Spring nutzt Mongo-Implementierung über JPA

Ich bin ziemlich neu im Spring Framework und habe Probleme beim Einrichten des Projekts, an dem ich gerade arbeite. Ich muss in der Lage sein, eine Verbindung zu zwei verschiedenen Datenbanken herzustellen, von denen eine MongoDB und die andere MSSQL ist. Ich verwende JPA, um eine Verbindung mit MSSQL herzustellen.

Das Problem, auf das ich stoße, ist, dass es anscheinend versucht, Anrufe an die Mongo-Datenbank zu tätigen, wenn MSSQL aufgerufen werden soll. Ich habe die Posts gesehen, in denen empfohlen wird, das @ zu verwende@Qualifier Anmerkung, um es an die richtige Implementierung zu leiten, aber ich glaube nicht, dass das für meinen Fall funktionieren wird.

@RestController
@RequestMapping("/software")
public class SoftwareEndpoint {



    @Autowired
    SoftwareRepository repo;    


    /**********************************************************************************
    ********************************MSSQL calls****************************************
    ***********************************************************************************/
    @RequestMapping(value="/all",method=RequestMethod.GET,produces=MediaType.APPLICATION_JSON)
    String getAllSoftware(){

        System.out.println("Here1");
        List<Software> allSoftware = (List<Software>) repo.findAll();
        System.out.println("Here2");
        //rest of method and class

Above zeigt ein Snippet meiner Controller-Klasse mit einer Instanz meines SoftwareRepository. Ich drucke auch vor und nach dem DB-Aufruf in den Out-Stream.

Der Out-Stream zeigt nur "Here1" und gibt dann die folgende Zeile aus:

2016-10-04 07:35:39.810  INFO 4236 --- [nio-8080-exec-2] org.mongodb.driver.cluster               : No server chosen by ReadPreferenceServerSelector{readPreference=primary} from cluster description ClusterDescription{type=UNKNOWN, connectionMode=SINGLE, all=[ServerDescription{address=localhost:27017, type=UNKNOWN, state=CONNECTING, exception={com.mongodb.MongoSocketOpenException: Exception opening socket}, caused by {java.net.ConnectException: Connection refused: connect}}]}. Waiting for 30000 ms before timing out

und löst dann bei Zeitüberschreitung eine Ausnahme aus.

Ich habe keine Mongo-Instanz, die lokal ausgeführt wird. Es wird jedoch einen Ort geben, an dem die Anwendung bereitgestellt wird. Ich bin jedoch nicht der Meinung, dass dies das Problem ist, da beim Erreichen dieses Endpunkts kein Anruf an den erfolgen sollte Mongo-Datenbank sollte versucht werden, MSSQL zu erreichen.

TLDR: Wie kann ich angeben, welche Datenbankimplementierung für Spring für ein bestimmtes Repository oder einen bestimmten Datenbankaufruf verwendet werden soll?

Antworten auf die Frage(4)

Ihre Antwort auf die Frage