Ric*_*sti 12 java playframework ebean playframework-2.0
我们正在使用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"
Run Code Online (Sandbox Code Playgroud)
这似乎不起作用:
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]
Run Code Online (Sandbox Code Playgroud)
我们检查并重新检查,配置正常!
然后,我们尝试为每个数据库模型类使用不同的Java包,并在application.conf中相应地映射它们:
ebean.firstDB = "packageA.*"
ebean.secondDB = "packageB.*"
ebean.thirdDB = "packageC.*"
Run Code Online (Sandbox Code Playgroud)
这在从数据库中读取信息时工作正常,但是当您尝试保存/更新对象时,我们得到:
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()
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
谢谢!里卡多
您必须在查询中指定要访问的数据库.
例如,如果要从secondDB检索所有用户:
// Get access to your secondDB
EbeanServer secondDB = Ebean.getServer("secondDB");
// Get all users in secondDB
List<User> userList = secondDB.find(User.class).findList();
Run Code Online (Sandbox Code Playgroud)
使用时save()
,delete()
update()
或 时refresh()
,您必须指定 Ebean 服务器,例如save()方法:
classA.save("firstDB");
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4412 次 |
最近记录: |