Mehrere Datenbanken mit Play Framework 2.1.x

Ich habe 2 Datenbanken, mit denen ich mich verbinden muss. Ich kann mich leicht mit ihnen in der application.conf-Datei wie folgt verbinden:

db.default.driver=org.postgresql.Driver
db.default.url="jdbc:postgresql://localhost/db1"
db.default.user=postgres
db.default.password="password"

db.secondary.driver=org.postgresql.Driver
db.secondary.url="jdbc:postgresql://localhost/db2"
db.secondary.user=postgres
db.secondary.password="password"

ebean.default="models.db1.*"
ebean.secondary="models.db2.*"

Ich habe meine Modellklassen in diesen Paketen, und DDL generiert die Tabellen ordnungsgemäß.

Das Problem liegt in der tatsächlichen Arbeit mit diesen Entitäten. Alles, was nicht im "Standard" -Paket enthalten ist, löst diesen Fehler aus (am Beispiel der Tabelle Users in der sekundären Datenbank).

Wenn ich versuche, alle Zeilen der Tabelle abzufragen:

List<Users> users = Users.find.all();

Es löst diesen Fehler aus:

[PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?]

Auch wenn ich zu 100% sicher bin, dass sich die Users-Tabelle im Backend befindet, handelt es sich um eine registrierte Tabelle, die von der DDL ordnungsgemäß erstellt wird, und ich importiere die richtigen Klassen.

Gibt es eine bestimmte Möglichkeit, Modellklassen abzufragen, die nicht im Standardpaket enthalten sind?

BEARBEITEN: Mir ist klar, dass der Stack-Trace anzeigt, dass versucht wird, den DefaultServer zu verwenden. Wie kann ich dafür sorgen, dass der sekundäre Server verwendet wird?

    at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:989) ~[avaje-ebeanorm-server.jar:na]
    at com.avaje.ebeaninternal.server.core.DefaultServer.createQuery(DefaultServer.java:946) ~[avaje-ebeanorm-server.jar:na]
    at com.avaje.ebeaninternal.server.core.DefaultServer.find(DefaultServer.java:982) ~[avaje-ebeanorm-server.jar:na]
    at play.db.ebean.Model$Finder.all(Model.java:254) ~[play-java-ebean_2.10.jar:2.1.3]

Antworten auf die Frage(3)

Ihre Antwort auf die Frage