Múltiplos Bancos de Dados com o Play Framework 2.1.x
Eu tenho 2 bancos de dados que eu preciso conectar. Eu posso conectar-me facilmente a eles no arquivo application.conf da seguinte forma:
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.*"
Eu tenho minhas classes de modelo nesses pacotes e DDL gera as tabelas corretamente.
O problema está em realmente trabalhar com essas entidades. Qualquer coisa que não esteja no pacote "padrão" gera esse erro (usando a tabela Usuários no banco de dados secundário como exemplo)
Se eu tentar consultar todas as linhas da tabela:
List<Users> users = Users.find.all();
Isso lança esse erro:
[PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?]
Embora eu tenha 100% de certeza de que a tabela Usuários está lá no backend, é uma tabela registrada que o DDL trabalha e faz esta tabela corretamente, e estou importando as classes apropriadas.
Existe uma certa maneira eu preciso consultar classes de modelo que não estão no pacote padrão?
EDIT: percebo que o rastreamento de pilha mostra que ele está tentando usar o DefaultServer. Como posso usar o servidor secundário?
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]