[运行时异常:没有实体管理器绑定到此线程.尝试使用 @play.db.jpa.Transactional] 注释您的操作



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

我的函数是这样的:

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

感谢您的帮助

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

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

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

最新更新