gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 06:16:58 25 4
gpt4 key购买 nike

我正在尝试使用 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 at
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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com