Play Framework中子项目类中的包名称(名称空间)
我正在尝试在PlayFramework中创建多子模块项目(播放框架2.2.1)。
我应该如何在子模块中命名包?
FE我的结构如下:
- 应用
- CONF
- DOC
- 日志
- 模块:
- 共同:
- 应用:
- 控制器
- 楷模
- 意见
- CONF:
- common.routes
- build.sbt
- 应用:
- 共同:
- 项目
- 上市
- 目标
- 测试
如何在文件中命名的包(命名空间):
/modules/common/app/controllers/Aplication.java
应该是这样的:
package controllers; package controllers.common; package common.app.controllers;
实际上我喜欢这样:
package controllers.common; public class Index extends Controller {}
与子模块中的模型类相同的问题。 Fe中的文件:/modules/common/app/models/User.java
应该是这样的:
package models; package models.common; package common.app.models;
实际上我喜欢这样:
package models.common; public class User {}
我得到的运行时错误:
[IllegalArgumentException: Unknown entity: models.Cart]
我找到了解决方案。
无论我如何命名包都没关系。 play框架的一个要求是使用以下命令启动包的名称:
- 控制器 – 在命名控制器包的情况下(fe:
package controllers.common;
) - 模型 – 在命名模型包的情况下(fe:
package models.common;
或者只是package models;
)
运行时错误:
[IllegalArgumentException: Unknown entity: models.Cart]
是由Jpa / Hibernate配置引起的。 问题是Jpa / Hibernate在编译时会看到我的实体(由注释@Entity标记),但在运行时不会。 为了解决这个问题,我将手动指向persistance.xml文件中的所有模型类(权利),如下所示:
/conf/META-INF/persistence.xml
org.hibernate.ejb.HibernatePersistence DefaultDS models.AppMode models.Customer models.Complaint
在这里查看更多: 如何使用jpa / hibernate在playframework子模块中持久化模型实体
- 在Spring MVC中使用无效数据提交表单时发送的语法错误请求(使用hibernate Validator)
- 为什么在一个线程迭代(使用Iterator)和其他线程修改非线程安全的ArrayList的相同副本时没有ConcurrentModificationException
- 如何在Java中处理StackOverflowError?
- 从现有的OutputStream创建Java-Zip-Archive
- 在Javascript中对选择选项进行排序 – 基于同一行中的多个值
- Java:从互联网上的目录中读取文本文件
- 以编程方式进行线程转储/ JDI(Java调试器接口)
- Java Servlet容器性能如何?
- 如何在java中使用varargs作为Constructor.getConstructor()的参数