java - 无法在 Play 2 中使用多个 ebean 数据库

标签 java playframework playframework-2.0 ebean

我们正在使用 Play Framework 2.0.3 建立一个稍微复杂的项目。

我们需要访问多个数据库(预先存在),并希望使用框架的内置工具(即 EBean)来完成。

我们尝试在“models”包中创建所有模型类,然后将每个类及其 FQN 映射到 application.conf 中相应的 EBean 属性:

ebean.firstDB="models.ClassA,models.ClassB,models.ClassC"
ebean.secondDB="models.ClassD"
ebean.thirdDB="models.ClassE,models.ClassF"

这似乎不起作用:

PersistenceException: Error with [models.SomeClass] 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] className[models.SomeClass] 

我们检查并重新检查,配置没问题!

然后我们尝试为每个数据库模型类使用不同的 Java 包,并在 application.conf 中相应地映射它们:

ebean.firstDB = "packageA.*"
ebean.secondDB = "packageB.*"
ebean.thirdDB = "packageC.*"

这在从数据库读取信息时工作正常,但当您尝试保存/更新对象时,我们得到:

PersistenceException: The default EbeanServer has not been defined? This is normally set via the ebean.datasource.default property. Otherwise it should be registered programatically via registerServer()

有什么想法吗?

谢谢! 里卡多

最佳答案

您必须在查询中指定要访问的数据库。

例如,如果您想从您的 secondDB 中检索所有用户:

// Get access to your secondDB
EbeanServer secondDB = Ebean.getServer("secondDB");

// Get all users in secondDB
List<User> userList = secondDB.find(User.class).findList(); 

关于java - 无法在 Play 2 中使用多个 ebean 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201228/

相关文章:

java - 提取tar文件时如何检测文件权限?

java - 模拟服务类方法给出错误

java - ebean java play框架中的约束未反射(reflect)在生成的sql中

java - 在 Play 1.2 中,有没有办法在不编辑模块源代码的情况下保护模块提供的 Controller ?

jquery - 如何将 Play Framework 1.x 项目迁移到 2.0

scala - Play 2.0 - 从 Scala 控制台访问正在运行的(假)应用程序

Java Arraylist 堆实现

java - 在 Eclipse 中导入 HoloEverywhere 和 ActionbarSherlock 的属性复制

java - Play Framework 2.x 无法识别新创建的 scala.html View

scala - Playframework 插件在 IntelliJ IDEA 12 中不起作用