我在 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
我注意到当我在persistance.xml中设置它时,hibernate正确地为AppMode实体创建SQL结构:
<property name="hibernate.hbm2ddl.auto" value="create-drop"/>
但是当我走得更远时,我遇到了下一个错误:
[IllegalArgumentException: org.hibernate.hql.ast.QuerySyntaxException: Mincident 未映射
虽然我在那个类上有注释@Entity。
它似乎是正确的映射,但我不能像hsql select
或JPA.em().find()
在那个实体上做任何操作