有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java如何解决JPA更新时数据库中NOTNULL的值

CREATE TABLE `user_info` (
`user_info_id` int(10) unsigned NOT NULL AUTO_INCREMENT,
`nickname` varchar(40) NOT NULL,
`email` varchar(100) 
)

这是我的数据库表,数据库有一个记录id=1,昵称=test,email=null

UserInfo info = new UserInfo();
info.setUserInfoId(1);
info.setEmail("hello@hotmail.com");

当我用上述代码更新时,出现一个错误列“昵称”不能为空

我知道这是因为JPA必须先执行查找,但我不想在更新操作时给JPA所有不能为空的值

补充说明:

假设我的前端只向我发送ID和电子邮件,我如何更新它?使用SQL是可行的,但JPA必须要求昵称不为null

如何解决这个问题? thx


共 (1) 个答案

  1. # 1 楼答案

    更新现有记录的方法是加载记录,更新任何需要更新的列,然后通过创建新对象将其保存,而不是

    UserInfo info = userInfoRepository.findById(1);
    info.setEmail("hello@hotmail.com");
    userInfoRepository.save(info);