在Play中使用save()方法!继承(JPA)

时间:2015-02-10 09:39:57

标签: java jpa playframework playframework-2.2 playframework-2.3

我有我的超级抽象类:

@Entity
@Inheritance(strategy = InheritanceType.TABLE_PER_CLASS)
public abstract class User {

    @Id
    public int id; 
    public String name; 
}

另外两个课程延伸用户:

客户

@Entity
@Table(name = "customers")
public class Customer extends User{

    @Id
    public int id; 
    public String role; 

    public Customer(String role){
        super(); 
        this.role = role; 
    }
}

卖方

@Entity
@Table(name = "sellers")
public class Seller extends User{

    @Id
    @GeneratedValue
    public int id; 
    public String role; // Seller

    public Seller(String role){
        super(); 
        this.role = role; 
    }
 }

我希望能够在游戏中使用 save()方法,所以我写了这个:

public static Result saveCustomer(){
        Customer customer = Form.form(Customer.class).bindFromRequest().get();
        customer.save();        
        return ok(); 
    }

但是, save()未定义。

解决这个问题的方法是什么?

2 个答案:

答案 0 :(得分:1)

实际上......要让播放2x 中的entityManager,你有一个助手。

JPA.em().persist(object);

您可以在此link中看到更多信息。

答案 1 :(得分:0)

save()方法是GenericModel的一部分,属于Play 1.x。由于您使用Play 2.x,因此应使用JPA对象和entityManager.persist()方法。