EBean:java.lang.IllegalStateException:Bean类模型。用户未得到增强吗?

问题描述 投票:2回答:4

我有一个Play 2.4.6应用程序,直到两天前都运行良好。从昨天开始,我收到此错误:

[[37minfo] - application - Creating Pool for datasource 'default'
[[31merror] - com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager - Error in deployment
java.lang.IllegalStateException: Bean class models.User is not enhanced?
    at com.avaje.ebeaninternal.server.deploy.BeanDescriptorManager.setEntityBeanClass(BeanDescriptorManager.java:1405) ~[avaje-ebeanorm-6.8.1.jar:na]

我已经在寻找解决方案,但仍然遇到该错误。甚至,我尝试使用插件2.0

addSbtPlugin("com.typesafe.sbt" % "sbt-play-ebean" % "2.0.0") 

我该如何解决?

提前谢谢您,

更新:最后,我重写了代码,删除了EBean,并开始使用Play Framework的数据库池和JDBC的PreparedStatement。工作良好。我将在这里留下这个问题,希望对其他人有所帮助。

mysql playframework playframework-2.0 ebean
4个回答
2
投票

检查以下内容:

  1. 确保在User类上指定@Entity注释。
  2. 确保application.conf已为您的数据源配置了ebean软件包:ebean.default=["models.*"]
  3. 确保addSbtPlugin("com.typesafe.sbt" % "sbt-play-enhancer" % "1.1.0")在您的plugin.sbt文件中。
  4. 确保在build.sbt中启用了PlayEbean:lazy val root = (project in file(".")).enablePlugins(PlayJava, PlayEbean)

1
投票

如果您想使用ebean再试一次,这对我来说就有用了

https://www.youtube.com/watch?v=o4kmglM48Vc


1
投票

如果您tried all of the given solutionscouldn't解决了问题,请检查项目的JDK版本。

Java11存在某种问题。 尝试Java8或更低版本。


0
投票

取决于所使用的播放框架的版本,可能需要更改

ebean.default= ["models.*", "another.models.*"]

ebean.default="models.*, another.models.*"

您可以在这里找到更多详细信息:https://github.com/playframework/play-ebean/issues/18

[此外,您需要为每个需要eBean增强器的模块配置playEbeanModels。例如:

    lazy val domainModel = (project in file("domain-model")).enablePlugins(PlayJava, PlayEbean).settings(Seq(
      libraryDependencies ++= Seq(
        "org.projectlombok" % "lombok" % "1.18.4",
        "com.h2database" % "h2" % "1.4.197",
        guice),
      playEbeanModels in Compile := Seq("com.mycompany.model.*"), // this should match the package name from above ebean.default="com.mycompany.model.*
      playEbeanDebugLevel := 4
)

也可以在这里找到一些解释:https://github.com/playframework/play-ebean/issues/25

© www.soinside.com 2019 - 2024. All rights reserved.