错误:无法在只读事务中执行UPDATE。

我得到

错误:无法在只读事务中执行UPDATE。

在下面的方法中的user.update()调用行。

    User user;
    try {
        user = User.finder.where().eq("phoneNumber", PhoneHelper.normalizePhoneNumber(phoneNumber)).findUnique();
    } catch (NumberFormatException e) {
        final ErrorMessage errorMessage = new ErrorMessage("Invalid phone number");
        errorMessage.addField("phoneNumber");
        return badRequest(Json.toJson(errorMessage));
    }

    ...
    some checks
    ...

    final String newApiKey;
    try {
        newApiKey = UUID.randomUUID().toString();
        user.addApiKey(newApiKey);
        if (!isDemoUser(phoneNumber)) user.setSecurityCode(null);
        user.update();
    } catch (Exception e) {
        Logger.warn("Can't create session", e);
        return internalServerError(Json.toJson(new ErrorMessage("Can't create api_key. Please contact service administrator")));
    }

    return ok(Json.toJson(new ApiKey(newApiKey)));

这个错误的原因是什么?我自己在这个方法中没有将事务的readOnly值设置为’true’。请指点我搜索的方向。

用户它只是一个实体。

@Entity
@Table(name = "userr")
public class User extends Model {
   ...fields...

   public static Finder<Long, User> finder = new Finder<>(User.class);

}

Ebean ORM的版本是

"org.avaje.ebeanorm" % "avaje-ebeanorm" % "6.10.4"

解决方案:

只是少了一个 @Transactional 在我的情况下,在服务层.

给TA打赏
共{{data.count}}人
人已打赏
未分类

是否有办法保持一个Row(Flutter)中多个Widgets的纵横比?

2022-9-9 4:13:22

未分类

Android + (Java Time或ThirteenTenABP) ZonedDateTime.of产生了意想不到的结果。

2022-9-9 4:24:17

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索