jpa - 在 Play Framework 中使用 JPA 更新表

标签 jpa playframework

我正在尝试使用 JPA 更新表格

EntityManager em=JPA.em();
EntityTransaction entr = em.getTransaction();
try{
if(!entr.isActive())
  entr.begin();
  Tblrecordtypefields updateTblrecordtypes = em.find(Tblrecordtypefields.class,9);
  updateTblrecordtypes.setFieldlabel("JPATest");
  em.getTransaction().commit();
}finally
{
if(entr.isActive())
entr.rollback();
}

我收到错误 发生 NullPointerException : null 于 updateTblrecordtypes.setFieldlabel("JPATest"); 我该怎么办。

最佳答案

我发现其中可能存在一些问题:

首先,Play 自行管理交易。事务在请求开始时创建,并在请求结束时提交(如果出现异常则回滚)。你试图强行进入它,不建议这样做。要管理实体,只需执行entity.save() 将其标记为“要保存”,并且不要忽略任何更改。

其次,如果您在 Play 中使用 Model 类(您应该如此),您可以使用此类提供的“find”和“findById”方法。建议这样做,而不是直接使用 EntityManager。

请参阅documentation了解更多信息。

基本上,重做代码以遵循 Play 方式,以避免出现问题:)

编辑:作为澄清,我并没有真正回答你为什么获得 NPE 的问题,但我认为当你强行进入框架的设置时,你可能(也许不会!)看到意想不到的情况一旦您修复代码以遵循约定,这些工件就会消失。

如果之后您仍然遇到错误,请告诉我们:)

关于jpa - 在 Play Framework 中使用 JPA 更新表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7108325/

相关文章:

java - 在 Hibernate 中使用不同别名多次连接到同一关联

java - JPA 按两个日期之间的日期查找

java - 是否有工具可以将数据库表反向工程为 JPA Groovy 实体类?

java - 使用 JPA 处理集合更新

java - hibernate何时从内存中删除分离的对象?非唯一对象异常

scala - 如何使用 Playframework 2.0 实现多元化和其他扩展

java - LinkedIn Wherehows - 如何启动后端?

java - Flash 作用域中的变量在 Google Chrome 中不存在

java - 修改现有 java 应用程序并使其上线的最简单方法

groovy - renderArgs 在模板中为空!框架