You need to enable JavaScript to run this app.
最新活动
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

SpringBoot不能保存实体中的Set

在使用SpringBoot保存实体时,遇到了一个问题:无法保存Set。代码如下:

@Entity public class User { @Id private Long id;

private String name;

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
private Set<Address> addresses;

// getters and setters

}

@Entity public class Address { @Id private Long id;

private String address;

// getters and setters

}

在向数据库保存User对象时,如果调用userRepository.save()方法,会发现User对象和它所关联的Address对象已经保存到了数据库中,但其中的Set<Address> addresses属性没有被保存。

这是因为Set默认使用懒加载的方式,只有在调用getAddresses()方法时才会从数据库中去获取数据。而在保存User对象时,因为无法确定哪些数据已经保存,因此无法把Set<Address> addresses属性也保存到数据库中。

解决这个问题的方法很简单,只需要在Set<Address> addresses属性上添加@Fetch(FetchMode.SUBSELECT)注解即可。代码如下:

@Entity public class User { @Id private Long id;

private String name;

@OneToMany(cascade = CascadeType.ALL)
@JoinColumn(name = "user_id")
@Fetch(FetchMode.SUBSELECT)
private Set<Address> addresses;

// getters and setters

}

这样,当调用userRepository.save()方法时,User对象和它所关联的Address对象的信息都会被保存到数据库中,包括Set<Address> addresses属性。

本文内容通过AI工具匹配关键字智能整合而成,仅供参考,火山引擎不对内容的真实、准确或完整作任何形式的承诺。如有任何问题或意见,您可以通过联系service@volcengine.com进行反馈,火山引擎收到您的反馈后将及时答复和处理。
展开更多
面向开发者的云福利中心,ECS 60元/年,域名1元起,助力开发者快速在云上构建可靠应用

社区干货

2022技术盘点之平台云原生架构演进之道|社区征文

原始的Spring Cloud全家桶的微服务架构,经过不断发展,也在演进为基础设施下沉的云原生架构,让应用生于云,长于云,充分利用云上能力,降本增效,削减技术债务,专注业务创新。下图为SmartOps架构全景:![](https://k... 配合K8s原生服务注册发现/配置中心/分布式调度中心/日志/监控/告警/链路追踪/DevOps等构筑完整应用体系;- 数据层:存储使用有云硬盘/对象存储/CFS,数据库有MongoDB分片集群/MySQL/Redis/ElasticSearch/RabbitMQ进行...

策略模式 之 一键切换云存储方式|社区征文

[在这里插入图片描述](https://img-blog.csdnimg.cn/75d1325ac40c423aa4e2add990b0eb4b.png)# 🦢 2、策略模式的具体实现## 🦜 2-1、SpringBoot项目的基本搭建> 关于SpringBoot项目的搭建这里就不做过多的概述... ```> 我们编写properties实体类,通过@ConfigurationProperties()注解可以将配置文件中的内容读取到实体类中。> 实体类中由于类继承关系`不要使用@Data注解`,而要`使用@Getter和@Setter`,某则可能会出现问题。>...

DevOps基于k8s发布系统CI/CD的实现|社区征文

但他们都不能够很好的和云环境相结合。那么[究竟该如何实现一个简单、快速的基于云环境的自动化构建系统呢](https://github.com/tiandizhiguai/dhorse)?我们首先以一个Springboot应用为例来介绍一下整体的发布流程... 发布过程中需要的工具和环境至少包括:代码仓库(Gitlab、GitHub等)、打包环境(Maven、Gradle等)、镜像制作(Docker等)、镜像仓库(Harbor、DockerHub等)、k8s集群等;此外,还包括发布系统自身的数据存储等。可以看出...

Enhancer-轻量化的字节码增强组件包|得物技术

请注意这里说的Advice并不是Spring所依赖的aspectj中的Advice,而是一种代码织入的技术,它与代理的区别在于,代码织入技术不需要创建代理类。如果用图形表示的话,可以更简单更直观的感受到两者的区别。代码织入... 需要注意的是@Advice.This不能标识构造方法` `* @param method 目标方法` `* @param arguments 方法参数` `* @return 方法执行返回的临时数据` `* @since 0.0.1` `*/` `@Advice.OnMethodEnter` `pub...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

SpringBoot不能保存实体中的Set -优选内容

2022技术盘点之平台云原生架构演进之道|社区征文
原始的Spring Cloud全家桶的微服务架构,经过不断发展,也在演进为基础设施下沉的云原生架构,让应用生于云,长于云,充分利用云上能力,降本增效,削减技术债务,专注业务创新。下图为SmartOps架构全景:![](https://k... 配合K8s原生服务注册发现/配置中心/分布式调度中心/日志/监控/告警/链路追踪/DevOps等构筑完整应用体系;- 数据层:存储使用有云硬盘/对象存储/CFS,数据库有MongoDB分片集群/MySQL/Redis/ElasticSearch/RabbitMQ进行...
策略模式 之 一键切换云存储方式|社区征文
[在这里插入图片描述](https://img-blog.csdnimg.cn/75d1325ac40c423aa4e2add990b0eb4b.png)# 🦢 2、策略模式的具体实现## 🦜 2-1、SpringBoot项目的基本搭建> 关于SpringBoot项目的搭建这里就不做过多的概述... ```> 我们编写properties实体类,通过@ConfigurationProperties()注解可以将配置文件中的内容读取到实体类中。> 实体类中由于类继承关系`不要使用@Data注解`,而要`使用@Getter和@Setter`,某则可能会出现问题。>...
DevOps基于k8s发布系统CI/CD的实现|社区征文
但他们都不能够很好的和云环境相结合。那么[究竟该如何实现一个简单、快速的基于云环境的自动化构建系统呢](https://github.com/tiandizhiguai/dhorse)?我们首先以一个Springboot应用为例来介绍一下整体的发布流程... 发布过程中需要的工具和环境至少包括:代码仓库(Gitlab、GitHub等)、打包环境(Maven、Gradle等)、镜像制作(Docker等)、镜像仓库(Harbor、DockerHub等)、k8s集群等;此外,还包括发布系统自身的数据存储等。可以看出...
Java SDK
1.3.1 在 SpringBoot 框架中初始化推荐使用配置的方式进行初始化。 1.3.1.1 HTTP 模式 datarangers.sdk.mode=http表示使用HTTP模式。 1.3.1.1.1 SaaS-云原生配置 不需要配置host,需要配置domain、appkeys,不需要o... eventSaveMaxFileSize:表示需要保存的日志文件的最大文件大小,单位为MB。 eventFilePaths:表示需要保存的日志文件的位置,为一个字符串数组,数组中的每一个值都表示一个路径,用户将日志文件写到不同的文件夹下,可以...

SpringBoot不能保存实体中的Set -相关内容

Java SDK

1.3.1 在 SpringBoot 框架中初始化推荐使用配置的方式进行初始化。 1.3.1.1 HTTP 模式 datarangers.sdk.mode=http表示使用HTTP模式。 1.3.1.1.1 SaaS-云原生配置 不需要配置host,需要配置domain、appkeys,不需要o... eventSaveMaxFileSize:表示需要保存的日志文件的最大文件大小,单位为MB。 eventFilePaths:表示需要保存的日志文件的位置,为一个字符串数组,数组中的每一个值都表示一个路径,用户将日志文件写到不同的文件夹下,可以...

Enhancer-轻量化的字节码增强组件包|得物技术

请注意这里说的Advice并不是Spring所依赖的aspectj中的Advice,而是一种代码织入的技术,它与代理的区别在于,代码织入技术不需要创建代理类。如果用图形表示的话,可以更简单更直观的感受到两者的区别。代码织入... 需要注意的是@Advice.This不能标识构造方法` `* @param method 目标方法` `* @param arguments 方法参数` `* @return 方法执行返回的临时数据` `* @since 0.0.1` `*/` `@Advice.OnMethodEnter` `pub...

Kubernetes 容器平台架构之道|社区征文

DaemonSet Controller 等控制器。**分布式的工作节点**,工作节点运行业务应用容器;默认会运行**三大核心组件:****Kubelet:** 与管理节点通信并触发指令执行,管理驱动网络,存储及容器运行时;**Kube Proxy:**... **ConfigMap:** 主要是承担配置中心,用于存储应用的配置数据,比如 Springboot 应用 properties 配置文件数据,但是空间大小限制在 1MB 内。**Secret:** 功能与 ConfigMap 类似,用于存储应用的敏感数据,比如数据密...

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

达梦@记一次国产数据库适配思考过程|社区征文

查看了MySql中那些字段的类型及长度,都是varchar(50) 。这里应该是迁移有些字段,须在DM数据库中增加位宽,在MySql中varchar是表示字符,varchar(50)表示可以存放50个字符,但是DM的默认跟Oracle是一样的,varchar(50)表... 在项目工程中引入达梦数据库驱动,SpringBoot对MySql做了集成,没有get到对达梦数据库做集成,小编这里采用的jdk1.8,安装的达梦数据库也是DM8,所以这里引入:DmJdbcDriver18,其相对于DmJdbcDriver17作出了很大的改进。...

基于 Zeppelin 的 Flink/Spark 云原生实践

存储则需要借助 K8s 里的 Persistent Volume 机制,将一块磁盘/云盘,映射成固定的 Volume 挂载到 POD 内部实现自动/手动的存储;* **跨** **N** **ame** **s** **pace 提交作业**:Namespace 在 K8s 中的实现... 包含:实体、权限和权限的关联。K8s 的权限可以分为两种:分别是在 Namespace 内部的权限和跨 Namespace 资源的权限,跨 Namespace 资源的权限需要通过 Cluster Role 先进行权限的声明,并与 ServiceAccount 绑定后实现...

Katalyst Custom Config:轻松管理上万节点的差异化配置

对于通过 DaemonSet 部署的单机 Agent 而言,传统的基于启动参数的静态配置管理方式只能通过滚动重启实例进行配置变更,存在生效时间长、实例重启存在风险等问题。另外,面对集群中存在的的差异化配置需求,这种方式也只能通过部署多个 DaemonSet 实例的方式实现,存在运维负担较重的问题。因此对于单机管控系统而言, **动态配置管理**已经成为不可或缺的功能。针对上述需求,原生 Kubernetes 提出了 Dynamic Kubelet Con...

Katalyst Custom Config:轻松管理上万节点的差异化配置

对于通过 DaemonSet 部署的单机 Agent 而言,传统的基于启动参数的静态配置管理方式只能通过滚动重启实例进行配置变更,存在生效时间长、实例重启存在风险等问题。另外,面对集群中存在的的差异化配置需求,这种方式也只能通过部署多个 DaemonSet 实例的方式实现,存在运维负担较重的问题。因此对于单机管控系统而言, **动态配置管理**已经成为不可或缺的功能。针对上述需求,原生 Kubernetes 提出了 Dynamic Kubelet Con...

干货 | 以一次Data Catalog架构升级为例,聊聊业务系统的性能优化

新版本的存储层基于Apache Atlas实现。迁移过程中,我们遇到了比较多的性能问题。 **本文以Data Catalog系统升级过程为例,与大家讨论业务系统性能优化方面的思考,也会介绍字节跳动关于Apache Atlas相关的性能优化。... 新版本保留了原有版本全量的产品能力,将存储层替换成了Apache Atlas。然而,当我们把存量数据导入到新系统时,许多接口的读写性能都有严重下降,服务器资源的使用也被拉伸到夸张的地步,比如:* 写入一张超过3000列...

干货|字节跳动数据技术实战:Spark性能调优与功能升级

由于Parquet文件是基于 RowGroup的方式分块存储的,并且Parquet Footer中存储了每个RowGroup的 min/max等索引信息,因此可以结合Data Filter进一步过滤出必要的RowGroup。例如下图中的过滤条件a=10,RowGroup2中的a列... 其中构建如下图SQL所示,以创建普通视图的方式创建物化视图,不同的点在于,物化视图创建之后会自动计算SELECT结果并存储到物化视图实体表中。 查询时,Spark引擎会自动判断是否命中物化视图,并将执行计划re...

特惠活动

热门爆款云服务器

100%性能独享,更高内存性能更佳,学习测试、web前端、企业应用首选,每日花费低至0.55元
60.00/1212.00/年
立即购买

域名注册服务

cn/top/com等热门域名,首年低至1元,邮箱建站必选
1.00/首年起32.00/首年起
立即购买

DCDN国内流量包100G

同时抵扣CDN与DCDN两种流量消耗,加速分发更实惠
2.00/20.00/年
立即购买

产品体验

体验中心

云服务器特惠

云服务器
云服务器ECS新人特惠
立即抢购

白皮书

一图详解大模型
浓缩大模型架构,厘清生产和应用链路关系
立即获取

最新活动

爆款1核2G共享型服务器

首年60元,每月仅需5元,限量秒杀
立即抢购

火山引擎增长体验专区

丰富能力激励企业快速增长
查看详情

数据智能VeDI

易用的高性能大数据产品家族
了解详情

一键开启云上增长新空间

立即咨询