我是乔克新手。我正在尝试将用户表中名为“帐户状态”的列从UNLOCKED更新为LOCKED。我正在使用Jooq的dslContext更新查询。

我在控制器中调用此updateAccountStatus方法。但是这种方法给了我一个NullPointerException。

public boolean updateAccountStatus(String userhandle,UsersAccStatus usersAccStatus) {
try {
dslContext
                    .update(USERS)
                    .set(USERS.ACC_STATUS,UsersAccStatus.LOCKED)
                    .where(USERS.USER_HANDLE.equal(userHandle))
                    .execute();
 }
catch(Exception e) {
// code
}
}


我希望此方法的输出可以更新数据库中的account_status枚举。
错误信息 :-

java.lang.NullPointerException: null
    at com.core.admin.controller.AdminAccountStatus.execute(AdminAccountStatus.java:84) ~[classes/:na]


任何帮助,将不胜感激。

最佳答案

1)在下一行中,您直接使用类UsersAccStatus,如果您已将LOCKED声明为static,那么就可以了,否则您必须使用类users.AccStatus(UsersAccStatus)的对象(用小写字母表示)

2)修改以下代码

从:

.set(USERS.ACC_STATUS,UsersAccStatus.LOCKED)


至:

 .set(USERS.ACC_STATUS,usersAccStatus!=null ? null : usersAccStatus.LOCKED)


让我知道这是否对您有用。

问候,
阿努拉格

关于mysql - 更新数据库时如何解决NullPointerException,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58162552/

10-14 19:16
查看更多