【发布时间】:2015-05-10 14:54:07
【问题描述】:
我有一个关于 Play 中 JPA 用法的问题。 我已经创建了一个模型类并用@Entity 和一个控制器类对其进行了注释,其中我有一个用@play.db.jpa.Transactional 注释的静态方法。当我启动激活器运行时,一切都已正确编译,并且数据库已启动,但只要我调用实体管理器的代码通过
EntityManager em = play.db.jpa.JPA.em();
抛出 NullException。 就我而言,persistence.xml 和 application.conf 是正确的,我已经研究过网络,但无济于事。 有什么可能的解决方案? 提前致谢!
这是我使用 JPA 的具体代码:
public class UserController extends Controller {
@play.db.jpa.Transactional
public static Result registerResponse(){
System.out.println("registerResponse called!");
Form<MyUser> regForm = Form.form(MyUser.class).bindFromRequest();
if (regForm.hasErrors()) {
System.out.println("bad request");
System.out.println("Form: " + regForm.toString());
System.out.println("Errors: "+regForm.errors().toString());
return badRequest(views.html.registration.render(regForm,Arrays.asList(Avatar.values())));
} else {
MyUser newuser = regForm.get();
System.out.println("persisting");
EntityManager em = play.db.jpa.JPA.em(); //Here is the Nullpointer exception
em.persist(newuser);
System.out.println("persisted");
return ok(authentication.render(Form.form(Login.class)));
}
}
【问题讨论】:
-
您可以添加更多您正在使用的代码吗?与其描述您的方法及其设置方式,不如查看实际代码以确定可能存在问题的位置。
-
添加了我使用 JPA 的代码
标签: java hibernate jpa playframework