加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

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

发布时间:2020-12-14 16:30:17 所属栏目:Java 来源:网络整理
导读:我们正在使用Play Framework 2.0.3设置一个稍微复杂的项目. 我们需要访问几个数据库(预先存在的),并希望使用框架内置的工具(即EBean)来实现. 我们尝试在“models”包中创建所有模型类,然后将每个具有FQN的类映射到application.conf中的相应EBean属性: 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();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读