簡體   English   中英

播放框架db.play.JPA

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM