2016-07-11 14 views
1

Ich habe zwei Datenbankserver, beide Oracle. Angenommen, wir haben die folgende Abfrage:Join zwischen zwei Tables in differenet Datenbanken mit Hibernate

SELECT * 
FROM TABLE_ONE E1 
JOIN TABLE_TWO E2 ON E1.TWO = E2.ID 

und TABLE_ONE ist auf Datenbankserver # 1 TABLE_TWO auf # 2. Nun möchte ich einen Mechanismus, der ohne Änderung der Abfrage (was sehr zeitaufwendig ist) den Hibernate das Ergebnis erhalten. Beachten Sie, dass spring framework auch beteiligt ist.

+0

Hibernate unterstützt keine Verbindung zwischen mehreren "physischen" Datenbankinstanzen –

+0

Einfach googeln, dass :-) ehrlich nicht zu viel – Khodabakhsh

+0

@PrakashHariSharma irgendwelche Lösungen für eine solche Situation? – Khodabakhsh

Antwort

0

Hibernate unterstützt nicht das Verbinden mehrerer physischer Datenbanken. Sie können es für zwei Schemas möglicherweise unter derselben Datenbank erstellen.

1

Verwenden Sie oracle dblink und erstellen Sie ein Synonym für diese Tabelle oder erstellen Sie eine Ansicht für diese Tabelle, um sie im Ruhezustand referenzieren zu können.

+0

lass mich das versuchen. Vielen Dank. – Khodabakhsh

+0

Nach Rücksprache mit db admin erkannte ich, dass db link nicht erlaubt ist, basierend auf unseren bestimmten Bedenken. – Khodabakhsh

+0

Wie haben Sie diese Abfrage bisher durchgeführt? Wenn Sie es in einem beliebigen SQL-Tool (sqldeveloper, toad, ...) ausführen können, können Sie es als native Abfrage ausführen. Wenn Sie Spring-Daten verwenden, erstellen Sie ein benutzerdefiniertes Repository und führen Sie es aus dem Inneren aus. Versuchen Sie [hier] (http://www.petrikainulainen.net/programming/spring-framework/spring-data-jpa-tutorial-part-eight-adding-functionality-to-a-repository/). – bilak

0

Erstellen Sie einen Datenbanklink, wenn Ihr dba dies nicht erlaubt, dann müssen Sie eine Art clientseitige Verbindung machen, und das wird wahrscheinlich langsam sein. Sprich mit deinem Chef.