Ich habe 2 Datenbanken, die ich verbinden muss. Ich kann leicht wie so, um sie in der application.conf Datei verbinden:Mehrere Datenbanken mit Play Framework 2.1.x
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 meine Modellklassen in diesen Paketen haben, und es DDL erzeugt die Tabellen richtig.
Das Problem liegt in der tatsächlichen Arbeit mit diesen Entitäten. Alles, was nicht in dem „default“ Paket wirft diesen Fehler (die Benutzer-Tabelle in der sekundären Datenbank als Beispiel)
Wenn ich versuche, alle Zeilen der Tabelle abzufragen:
List<Users> users = Users.find.all();
Es wirft diese Fehler:
[PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?]
Auch wenn ich 100% sicher bin, dass die Tabelle Benutzer im Backend ist, ist es eine registrierte Tabelle der DDL arbeitet und macht diese Tabelle richtig, und ich bin die richtigen Klassen zu importieren.
Gibt es eine bestimmte Möglichkeit, Modellklassen abzufragen, die nicht im Standardpaket enthalten sind?
EDIT: Ich weiß, dass der Stack-Trace zeigt, dass es versucht, den DefaultServer zu verwenden. Wie kann ich den sekundären Server verwenden?
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]
Niemand hat deine Frage schon beantwortet, also denke ich, anstatt deine 'EDIT:' an deine Frage anzufügen, solltest du sie einfach bearbeiten, um zu fragen, was du wirklich brauchst. –
Anstatt models.db2. * In der applications.conf zu verwenden, versuchen Sie models.db2.Users zu verwenden. – Franz
@GregKopff, sagte ich nur EDIT, weil ich nicht sicher war, ob jemand antwortete, während ich die Fragen redigierte. –