【发布时间】:2015-10-26 15:02:51
【问题描述】:
使用 play framework 2.4.2,我必须连接到可以离线的远程数据库。
我试图避免启动时出现“无法连接到数据库 [distantdatabase]”异常。
在尝试了很多方法后,我决定手动创建一个 EbeanServerFactory 来访问这个远程数据库。
这是我的模型:
@Entity
@Table(name="vehicules")
public class Vehicule {
@Id
public Long id;
public Long noParc;
public Long etat;
}
这就是我尝试访问数据的方式
// Classes of distant database
List<Class<?>> saetrClasses = new ArrayList<Class<?>>();
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();
build.sbt
lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean, PlayEnhancer)
plugins.sbt
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 接口。 如何强制实现此接口?
【问题讨论】:
标签: java playframework playframework-2.0 ebean