【发布时间】:2014-11-09 21:17:04
【问题描述】:
我在 PLAY FRAMEWORK 中有一个项目,其中包含几个子模块。
每个子模块的文件夹结构如下:
- app:
- controllers
- **models**
- views
- conf:
- submodulename.routes
- build.sbt
我想将所有 java 类实体保存在文件夹中:models。
我应该如何配置播放框架和/或休眠实体管理器来扫描此文件夹中的实体。
我有如下示例模型类:
package models.common;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.NoResultException;
import controllers.common.Index;
import play.data.validation.Constraints;
import play.db.jpa.JPA;
@Entity
public class AppMode {
public static AppMode getCurrentConfigurationEntry() {
return JPA.em().find(AppMode.class, 1L);
}
//rest of code here- not important//
}
但在这种状态下 jvm 会返回一个运行时错误:
[IllegalArgumentException:未知实体:models.common.AppMode]
注意:我使用的是 play 2.2.1
我注意到 hibernate 正确地为 AppMode 实体创建 SQL 结构 当我在persistance.xml中设置它时:
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
但是当我走得更远时,我会收到下一个错误:
[IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Mincident 未映射
虽然我在该类上有注释 @Entity。
它似乎是正确的映射,但我无法对这些实体执行任何操作,如 hsql select 或 JPA.em().find()
【问题讨论】:
标签: hibernate entity playframework-2.2 subproject