[英]Play Framework db.play.JPA
好的。 我對Play Framework感到困惑。 (他們是否會像他們的產品一樣經常更新其教程和文檔?)。 我正在嘗試為CRUD應用程序編寫教程,並且我使用的是JPA而不是Ebean(因為最后一個不起作用,但如出現的那樣,第一個也不起作用)。 編譯器說,它找不到類Model。
Internet提供了正確的依賴關系,我已經嘗試了很多。 但是我找不到合適的人。 誰能幫我如何使這件最簡單的事情起作用?
這是我的路線:
# Home page
GET / controllers.Application.index()
POST /person controllers.Application.addPerson()
這是已注釋的應用程序配置
db.default.driver=org.h2.Driver
db.default.url="jdbc:h2:mem:play"
Built.sbt依賴關系:
libraryDependencies ++= Seq(
Jdbc,
javaJpa,
"org.hibernate" % "hibernate-entitymanager" % "4.3.5.Final"
)
Application.java:
package controllers;
import models.Person;
import play.*;
import play.data.Form;
import play.mvc.*;
import views.html.*;
public class Application extends Controller {
public Result index() {
return ok(index.render("Your new application is ready."));
}
public Result addPerson(){
Person person = Form.form(Person.class).bindFromRequest().get();
person.save();
return redirect(routes.Application.index());
}
}
並建模Person.java:
package models;
import java.util.*;
import javax.persistence.*;
import play.db.jpa.*;
@Entity
public class Person extends Model{
@Id
public String id;
public String name;
}
通過在不使用Ebean的情況下使用JPA,應該像此處描述的那樣例如(尚未經過實際測試)類似以下代碼:
public Result addPerson(){
Person person = Form.form(Person.class).bindFromRequest().get();
EntityManager em = JPA.em();
em.persist(person);
em.flush();
return redirect(routes.Application.index());
}
和模型將類似於以下內容:
@Entity
public class Person
{
private long id;
private String name;
@Id
@Column(name = "id")
public long getId()
{
return id;
}
public void setId(long id)
{
this.id = id;
}
@Basic
@Column(name = "name")
public String getName()
{
return name;
}
public void setName(String name)
{
this.name = name;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.