java - 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);
但是在数据库中仍然存在旧值
解决方案
根据您的休眠配置,save
JPA 存储库上的方法可能不会立即将您的更改写入数据库,并且您必须在完成“保存”实体后刷新它们。您还可以使用saveAndFlush
强制将对象中的更改立即写入数据库的方法。
推荐阅读
- python - 为什么要多次插入元素?
- java - 如何加载保存到我的标记 ID 的图像并显示在该特定标记的自定义信息窗口中?
- scrapy - 如何从:使用带有 css 选择器的 Scrapy 获取 Href
- json - Json 身份验证请求正文包含美元符号
- javascript - “Javascript - 权威指南” - 未捕获的 TypeError:trace(...) 不是函数
- networking - 当系统没有连接任何东西时,单个 DNS 查询会发生什么?
- angular - 角材料
默认值选择来自 - java - JPA 规范
加入查询 - apache-kafka - 无法进行 curl 并为 Snowflake Kafka 连接器创建 REST API
- c# - 使用 SortedList 的 C# 解决方案