Я пытаюсь избежать исключения «Невозможно подключиться к базе данных [distantdatabase]» при запуске.
Попробовав множество методов, я решил вручную создать EbeanServerFactory для доступа к этой удаленной базе данных.
Это моя модель:
Код: Выделить всё
@Entity
@Table(name="vehicules")
public class Vehicule {
@Id
public Long id;
public Long noParc;
public Long etat;
}
Код: Выделить всё
// Classes of distant database
List>();
saetrClasses.add(Vehicule.class);
// Access configuration to distant database
DataSourceConfig ds = new DataSourceConfig();
ds.setDriver("com.mysql.jdbc.Driver");
ds.setUrl("jdbc:mysql://localhost/distantdatabase");
ds.setUsername("stack");
ds.setPassword("overflow");
ServerConfig saetrServerConfig = new ServerConfig();
saetrServerConfig.setName("distantdatabase");
saetrServerConfig.setDefaultServer(false);
saetrServerConfig.setClasses(saetrClasses);
saetrServerConfig.setRegister(false);
saetrServerConfig.setDataSourceConfig(ds);
Logger.warn("EbeanServerFactory.create...");
EbeanServer saetrServer = EbeanServerFactory.create(saetrServerConfig);
saetrServer.find(Vehicule.class).where().gt("lastMaj", lastRequestTime).findList();
Код: Выделить всё
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean, PlayEnhancer)
Код: Выделить всё
addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")
Код: Выделить всё
[warn] - application - EbeanServerFactory.create...
[error] - com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager - Error in deployment
java.lang.IllegalStateException: Bean class models.distantdatabase.Vehicule is not enhanced?
[...]
Изменить: я просмотрел исходный код ebean и получил эту ошибку, потому что моя модель не реализует интерфейс EntityBean.
Как я могу принудительно реализовать этот интерфейс?
Подробнее здесь: https://stackoverflow.com/questions/333 ... verfactory
Мобильная версия