我有使用数据库的问题 我正在学习本教程 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
答案 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.core和persistence.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>