【发布时间】:2012-06-28 18:59:40
【问题描述】:
我无法以某种方式将play.db.jpa.Model 库导入我的模型,它只能找到play.db.ebean.Model。有没有办法导入这个?
谢谢
【问题讨论】:
标签: jpa model playframework
我无法以某种方式将play.db.jpa.Model 库导入我的模型,它只能找到play.db.ebean.Model。有没有办法导入这个?
谢谢
【问题讨论】:
标签: jpa model playframework
那是因为play.db.jpa.Model 是 Play 1.x 而play.db.ebean.Model 是 Play 2.x。
要在 Play 2.x 中使用 JPA,请参阅 http://www.playframework.org/documentation/2.0/JavaJPA
【讨论】:
find()方法呢?
public static User find(Long id){return JPA.em().find(User.class, id); }
play.db.jpa.Model 类从 play 2.0 开始不可用。我发现这个问题的解决方法是:
YourProject/conf/application.conf 中,声明JPA 配置:db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
db.default.jndiName=DefaultDS
还有持久化单元:
jpa.default=defaultPersistenceUnit
在 YourProject/conf/ 中创建一个名为 META-INF 的新包
在这个包中创建一个名为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.H2Dialect"/> </properties> </persistence-unit> </persistence>
YourProject/project/Build.scala修改依赖添加如下:val appDependencies = Seq(
// 在此处添加您的项目依赖项,
javaCore,
javaJdbc,
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "4.2.1.Final"
)
如果您不打算使用 Ebean,也可以禁用它:
val main = play.Project(appName, appVersion, appDependencies).settings(
ebeanEnabled := false
)
希望这会有所帮助。
【讨论】: