У меня есть 2 базы данных, с которыми мне нужно подключиться. Я могу легко подключиться к ним в файле application.conf следующим образом:
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.*"
У меня есть классы моделей в этих пакетах, и он создает таблицы правильно.
Проблема заключается в фактической работе с этими объектами. Все, что не в пакете "по умолчанию", выдает эту ошибку (например, в таблице "Пользователи" в дополнительной базе данных)
Если я попытаюсь запросить все строки таблицы:
List<Users> users = Users.find.all();
Он выдает эту ошибку:
[PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?]
Несмотря на то, что я на 100% уверен, что таблица "Users" присутствует в бэкэнд, это зарегистрированная таблица, в которой работает DDL, и делает эту таблицу правильно, и я импортирую соответствующие классы.
Есть ли какой-то способ, который мне нужен, чтобы запрашивать классы моделей, которые не входят в пакет по умолчанию?
EDIT: Я понимаю, что трассировка стека показывает, что она пытается использовать DefaultServer. Как я могу использовать вторичный сервер?
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]