首页 > 解决方案 > OneToOne JPA 不保存 null

问题描述

我有一个基本的 SpringBoot 2.1.0.RELEASE 应用程序。使用 Spring Initializer、JPA、嵌入式 Tomcat、Thymeleaf 模板引擎,并将其打包为可执行的 JAR 文件。

我有这个对象:

@Entity
public class TdkDevice extends Device {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;


    public TdkDevice() {
        super();
    }

    public TdkDevice(String deviceKey, String devicePAC) {
        super(deviceKey, devicePAC);
    }



    @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
    @JsonIgnore
    private User authorizedTeam;

}

在控制器中,我这样做

currentDevice.setAuthorizedTeam(null);
deviceService.save(currentDevice);  

但是在数据库中仍然存在旧值

标签: javaspring-mvcjpaspring-data-jpaspring-data

解决方案


根据您的休眠配置,saveJPA 存储库上的方法可能不会立即将您的更改写入数据库,并且您必须在完成“保存”实体后刷新它们。您还可以使用saveAndFlush强制将对象中的更改立即写入数据库的方法。

休眠文档


推荐阅读