I have 2 databases that I need to connect to. I can easily connect to them in the application.conf file like so:
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.*"
I have my model classes in those packages, and it DDL generates the tables properly.
The problem lies in actually working with these entities. Anything not in the "default" package throws this error (using the Users table in the secondary database as an example)
If I try to query all the rows of the table:
List<Users> users = Users.find.all();
It throws this error:
[PersistenceException: models.db2.Users is NOT an Entity Bean registered with this server?]
Even though I am 100% sure that the Users table is there in the backend, it is a registered table the DDL works and makes this table properly, and I am importing the proper classes.
Is there a certain way I need to query model classes that aren't in the default package?
EDIT: I realize that the stack trace shows that it's trying to use the DefaultServer. How can I make it use the secondary server?
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]
Error with [models.db2.Users] It has not been enhanced but it's superClass [class play.db.ebean.Model] is? (You are not allowed to mix enhancement in a single inheritance hierarchy) marker[play.db.ebean.Model]
error. – Attalie