[RuntimeException:没有绑定到此线程的EntityManager。尝试使用@ play.db.jpa.Transactional]注释您的操作方法

时间:2012-06-19 13:04:53

标签: database playframework

一旦我尝试使用sql语句插入将数据保存到db中,这就是问题。

我的功能是:

public void save(){
    JPA.em().persist(this);
}

public static Result registered() {
    Form<User> requestform = form(User.class).bindFromRequest();
    if(requestform.hasErrors()){

        return badRequest("<p>fehlerhafte eingabe!</p>").as("text/html");
    } else {
        User user = requestform.get();
        String fullname = user.fullname;
        String email = user.email;
        String password = user.password;
        String username = user.username;
        new User(username, password, fullname, email).save();
    }

    return redirect(controllers.routes.Application.index());

}

感谢您的帮助

1 个答案:

答案 0 :(得分:3)

就像调试消息所说的那样,您没有绑定到您的方法的实体管理器,因为它们没有标记为事务。

@play.db.jpa.Transactional
public static Result registered() {

此外,如果您正在使用EBean,您可以为您的User类扩展Model,它带有许多方便的内置函数供数据库使用,请参阅此处的文档:http://www.playframework.org/documentation/2.0.1/JavaEbean