database.models.Employee 不是在该服务器上注册的实体 Bean?

database.models.Employee is NOT an Entity Bean registered with this server?

我正在尝试将 Play Framework 与 h2 数据库结合使用,使用 Ebeans 来创建一个简单的员工管理网站,但我似乎无法让它正常工作。我遇到的错误是:

Error injecting constructor, javax.persistence.PersistenceException: database.models.Employee is NOT an Entity Bean registered with this server?

因此,根据 Ebeans 的说法,显而易见的结论是 Employee class 不是一个实体。我大部分时间都遵循了文档,并且 Employee class 完全按照它显示的那样构建。

package database.models;

import java.util.*;
import javax.persistence.*;

import io.ebean.*;
import play.data.format.*;
import play.data.validation.*;

@Entity
@Table(name = "Employees")
public class Employee extends Model {

@Transient
public static final Finder<Long, Employee> find = new Finder<>(Employee.class);

@Id
long emp_id;
@Constraints.Required
String name;

public Employee() {

}

App.conf

db {

default.driver=org.h2.Driver

default.url="jdbc:h2:file:./data/employeeDB.mv.db.mv.db"

default.username = admin

default.password = pass


}

ebean.default=["models.*"]

和build.sbt

lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)

scalaVersion := "2.12.2"
PlayKeys.externalizeResources := false

libraryDependencies += guice

libraryDependencies += "com.h2database" % "h2" % "1.4.192" 

libraryDependencies ++= Seq(evolutions, jdbc)

我正在使用 IntelliJ,并且我几乎使用了所有工具来确认 class 工作正常。它作为实体出现在持久性工具 Window 中,我已将数据源设置为我建立的 H2 数据库连接。至于H2数据库连接上的属性:

路径:./data/employeeDB/mv.db.mv.db URL: jdbc:h2:file:./data/employeeDB.mv.db.mv.db

这两个好像都不在乎,用户名和密码都对。我可以使用这个连接到 运行 SQL 就好了,但是一旦真正持久化就会出现错误,所以我认为这不是连接的原因。

您的模型 "Employee" 似乎在一个名为 database.models;

的包中

能否尝试将 ebean.default 设置更改为 ["database.models.*"]