如何通过 java 为 Play!2.1.1 配置 ebean 服务器
Posted
技术标签:
【中文标题】如何通过 java 为 Play!2.1.1 配置 ebean 服务器【英文标题】:How to configure ebean server via java for Play!2.1.1 【发布时间】:2013-06-06 22:17:52 【问题描述】:您好,我在使用 ebean 和 play 配置时遇到了一些问题,好像我无法让 ebean 服务器识别我项目中的某些类,我得到了
[PersistenceException: 类型 [class model.mappe.NodoSemplice] 不是注册实体?如果您没有明确列出要使用的实体类,Ebean 将在类路径中搜索它们。如果实体在 Jar 中,请检查 ebean.properties 文件中的 ebean.search.jars 属性或检查 ServerConfig.addJar()。]
model.mappe.NodoSemplice
类在哪里
@实体
公共类 NodoSemplice 扩展 NodoApprendimento
和
@实体
@Table(name="nodi_app")
公共抽象类 NodoApprendimento 扩展模型
导入是正确的,并且 ebeanserver 配置是这样的
ServerConfig def = new ServerConfig();
def.setName("fluidefault");
def.setDataSource(play.db.DB.getDataSource("fluiddefault"));
//i package delle classi di sistema
def.addPackage("model.contributi.*");
def.addPackage("model.corpi.*");
def.addPackage("model.mappe.*");
def.addPackage("model.utenti.*");
def.setDdlGenerate(true); //per generare il DataDefinitionLanguage
fluidefault = EbeanServerFactory.create(def);
保存是通过
完成的 public void save(NodoApprendimento nodoApprendimento)
nodoApprendimento.save(fluidefault.getName());
服务器引导程序很好,也可以与它交谈,但我仍然得到持久性异常,因为服务器无法将类识别为实体
【问题讨论】:
【参考方案1】:检查以下3点:
尝试使用您的具体类 NodoSemplice
,而不是您的抽象类 NodoApprendimento
来注释表 (@table)。
将表与具体类绑定更有意义。
确保您连接的数据库中存在名为nodi_app
的表,并且架构为public
。
在您的application.conf
中,启用 Ebean:
ebean.default="models.*"
【讨论】:
以上是关于如何通过 java 为 Play!2.1.1 配置 ebean 服务器的主要内容,如果未能解决你的问题,请参考以下文章
play2.0 + java + mysql5.0 错误太多
为 play framework 2.6 配置的默认控制器包在哪里?