【发布时间】:2015-03-27 04:45:31
【问题描述】:
我正在使用 playframework 2.3.x 和 Java。对于我的项目,我想与 mysql 连接并使用 JPA,连接工作正常(我认为)但是当我尝试创建模型用户时出现此错误:
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:3: error: package javax.persistence does not exist
[error] import javax.persistence.Column;
[error] ^
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:4: error: package javax.persistence does not exist
[error] import javax.persistence.Entity;
[error] ^
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:5: error: package javax.persistence does not exist
[error] import javax.persistence.GeneratedValue;
[error] ^
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:6: error: package javax.persistence does not exist
[error] import javax.persistence.GenerationType;
[error] ^
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:7: error: package javax.persistence does not exist
[error] import javax.persistence.*;
[error] ^
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:9: error: cannot find symbol
[error] @Entity
[error] ^
[error] symbol: class Entity
[error] C:\Users\lpiroche\Documents\www\play_framework\play_sample1\modules\core
\app\models\User.java:10: error: cannot find symbol
[error] @Table(name="users")
播放文档在连接mysql数据库的示例中很差,我阅读了tuto,post但我没有找到解决方案。我想我忘记了 persistence.xml 文件中的某些内容,但我不知道是什么。
build.sbt
libraryDependencies ++= Seq(
javaJdbc,
cache,
javaWs,
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "3.6.9.Final",
"mysql" % "mysql-connector-java" % "5.1.18"
)
application.conf
db.default.driver=com.mysql.jdbc.Driver
db.default.url="jdbc:mysql://localhost/mydb"
db.default.user=root
db.default.password=""
db.default.jndiName=DefaultDS
jpa.default=defaultPersistenceUnit
persistence.xml
<persistence xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd"
version="2.0">
<persistence-unit name="defaultPersistenceUnit" transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<non-jta-data-source>DefaultDS</non-jta-data-source>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"></property>
<property name="hibernate.format_sql" value="true"></property>
</properties>
</persistence-unit>
</persistence>
在示例中我发现了不同的配置:
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"></property>
<property name="hibernate.format_sql" value="true"></property>
或
<property name="hibernate.dialect" value="org.hibernate.dialect.MySQLDialect" />
<property name="hibernate.connection.driver_class" value="com.mysql.jdbc.Driver" />
不知道哪个最合适
【问题讨论】:
-
这很奇怪,Hibernate 应该将其作为依赖项...尝试运行
./activator update并重试。如果得到相同的结果,请尝试将"org.hibernate.javax.persistence" % "hibernate-jpa-2.0-api" % "1.0.1.Final"添加到 build.sbt 中的 libraryDependencies 中,然后运行 ./activator update
标签: java mysql jpa playframework