playframework - 包javax.persistence不存在

时间:2013-12-06 14:26:07

标签: java persistence ebean playframework-2.2

我有使用数据库的问题 我正在学习本教程 http://vimeo.com/58969923#(来自playframework.com页面) 在模型中:

播放-2.2.1 / jcirs /应用/模型/ MedicalIncident.java

公共类MedicalIncident扩展了Model {}

我正在尝试使用Entity。为此,我必须导入: javax.persistence。*和play.db.ebean。* 但是找不到它们。 错误是

  

包javax.persistence不存在

我该怎么办? 使用任何其他数据库引擎?或者应该下载一些依赖。 我想用playframework最好的方式去。 请帮忙。

我的配置 application.conf:

 db.default.driver=org.h2.Driver
 db.default.url="jdbc:h2:mem:play"
 ebean.default="models.*"

堆栈跟踪:

[jcirs] $ run 8081

--- (Running the application from SBT, auto-reloading is enabled) ---

[info] play - Listening for HTTP on /0:0:0:0:0:0:0:0:8081

(Server started, use Ctrl+D to stop and go back to the console...)

[info] Compiling 5 Scala sources and 5 Java sources to /home/daniel/play-2.2.1/jcirs/target/scala-2.10/classes...
[error] /home/daniel/play-2.2.1/jcirs/app/models/MedicalIncident.java:4: error: package javax.persistence does not exist
[error] import javax.persistence.*;
[error] ^
[error] /home/daniel/play-2.2.1/jcirs/app/models/MedicalIncident.java:6: error: package play.db.ebean does not exist
[error] import play.db.ebean.*;
[error] ^
[error] /home/daniel/play-2.2.1/jcirs/app/models/MedicalIncident.java:14: error: cannot find symbol
[error] public class MedicalIncident extends Model {
[error]                                      ^
[error]   symbol: class Model
[error] /home/daniel/play-2.2.1/jcirs/app/models/MedicalIncident.java:13: error: cannot find symbol
[error] @Entity
[error]  ^
[error]   symbol: class Entity
[error] /home/daniel/play-2.2.1/jcirs/app/models/MedicalIncident.java:15: error: cannot find symbol
[error]     @id
[error]      ^
[error]   symbol:   class id
[error]   location: class MedicalIncident
[error] /home/daniel/play-2.2.1/jcirs/app/controllers/MedicalIncident.java:21: error: cannot find symbol
[error]         MedicalIncident medical_incident = Form.form(MedicalIncident.class).bindFormRequest().get();
[error]                                            ^
[error]   symbol:   variable Form
[error]   location: class MedicalIncident
[error] 6 errors
[error] (compile:compile) javac returned nonzero exit code
[error] application - 

! @6gfjpj0cf - Internal server error, for (GET) [/] ->

play.PlayExceptions$CompilationException: Compilation error[error: package javax.persistence does not exist]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14$$anonfun$apply$16.apply(PlayReloader.scala:304) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:304) ~[na:na]
        at play.PlayReloader$$anon$1$$anonfun$reload$2$$anonfun$apply$14.apply(PlayReloader.scala:298) ~[na:na]
        at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
[warn] play - No application found at invoker init

4 个答案:

答案 0 :(得分:3)

您是否在Build.scala中更新了项目依赖项? 不确定Play 2.2.1中是否有任何更改,但对于Build.scala中的Play 2.1.3依赖项,如下所示:

  val appDependencies = Seq(
    javaCore,
    javaJdbc,
    javaEbean
  )

编辑: 在Build.scala中更新依赖项后,不要忘记通过运行相应的播放命令来更新IDEA或Eclipse中的依赖项,例如:

play idea

答案 1 :(得分:0)

当您运行“游戏创意”时,Playframework会生成IDEA特定文件(如果您使用的是Eclipse,请运行“play eclipse”)。如果您按照教程解释的方式导入项目,那么您应该已经在项目中提供了必要的JAR。

如果它仍然无效,请验证IDEA是否正确地为您的项目分配了JDK。

尝试理解这个框架在幕后做了什么,不要只是试着让它工作并忽略重要的东西。

答案 2 :(得分:0)

我遇到了同样的问题而且我正在使用Eclipse。我包括@Entity,例如在我的项目控制台中输入了eclipse with-source=true。在Eclipse项目中的“Refresh”和“Clean”之后,它为我带来了所有JAR,然后我点击了该问题,IDE提供了包含javax.persistence.*play.db.ebean.Model等的可能性。 / p>

答案 3 :(得分:0)

我遇到了同样的问题,同时使用了Eclipse Neon的大量修改版本。
为我解决这个问题的线索是,我看到错误的唯一地方是 Maven < / em>构建。 Eclipse IDE能够很好地编译和运行程序。
我能够通过在项目的pom.xml文件中添加几个依赖项来解决它。请参阅下面的依赖项的xml代码。
通过在Maven Central上向下钻取目录,我能够获得groupId和artifactId的版本。我刚走过树,直到找到persistence.corepersistence.jpa工件的metadata.xml文件。

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.core</artifactId>
        <version>2.6.4</version>
        <scope>compile</scope>
    </dependency>

    <dependency>
        <groupId>org.eclipse.persistence</groupId>
        <artifactId>org.eclipse.persistence.jpa</artifactId>
        <version>2.6.4</version>
        <scope>compile</scope>
    </dependency>