2015-08-28 5 views
0

Хорошо. У меня большая путаница с Play Framework. (Они обновляют свой учебник и документацию так часто, как их продукты?). Я пытаюсь сделать учебник для приложения CRUD, и я использую JPA вместо Ebean (потому что последний не работает, но, как оказалось, первый либо). Компилятор говорит, что он не может найти класс Model.Play Framework db.play.JPA

Интернет предлагает получить правильные зависимости, и я уже пробовал их много. Но я не могу получить правильный ответ. Может ли кто-нибудь помочь мне, как сделать эту самую легкую работу?

Вот мои маршруты:

# Home page 
GET /       controllers.Application.index() 
POST /person    controllers.Application.addPerson() 

Вот конфигурация приложения, которые были oncommented

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; 


} 
+0

Почему вы расширяете 'Person' из' play.db.ebean.Model'? Есть ли необходимость, даже если вы не используете Ebean, а JPA? Вы пытались использовать 'import play.db.ebean.Model;'? –

+0

Да, я попробовал (плюс добавление зависимостей для ebean и прочее, компилятор сказал бы, что play.db.ebean не существует – Laura

+0

и, на самом деле, я бы предпочел сделать это с JPA, но сначала попробовал Ebean, потому что это было в учебнике по игровой картине – Laura

ответ

0

С помощью JPA без Ebean оно должно быть, как описано here Например (не проверял на самом деле), как парование код:

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; 
    } 
}