当前位置: 首页 > news >正文

@JoinTable会自动删除关联表的数据

问题

使用@JoinTable关联上关联表后,当我更新主表的某条数据,jpa会自动删除这条数据所关联的关联表对应数据。

例如:

User user = new User(); //detached
user.setId(1L); // for merge
user.setEmail("newemailaddress@example.com");

entityManager.merge(user);

jpa执行的语句:

UPDATE user... /*ok!*/
delete from user_role where ... /* I'd like to avoid it! */

Stack Overflow中也找到了很多人跟我同样的问题,但是没有答案。

java - JPA (with Hibernate) @ManyToMany @JoinTable relationship cascade - Stack Overflow
jpa - How to disable delete for JoinTable? - Stack Overflow
hibernate - JPA Cascade Delete JoinTable Row - Stack Overflow
hibernate update when @JoinTable null auto delete join table - Stack Overflow

解决

目前我只能舍弃@JoinTable方式关联,使用joinColumn来处理。

主表通过joinColumn关联进来关联表对象,在关联表实体中再joinColumn关联上附表的信息。

例如数据库中有博客和标签表,还有一个博客标签关联表。
在博客实体中joinColumn关联进来博客标签关联表,在博客标签关联表实体中关联进来附表

那么就可以在博客实体获取到它所拥有的的所有标签的信息,虽然比@JoinTable复杂,但是不会有上面的问题了。


如果你有更好的解决方法, 麻烦评论留言给我。

相关文章:

  • el-select修改宽度没效果
  • java 判断String是不是Long类型
  • Statement lambda can be replaced with expression lambda
  • elementui 加css不起作用
  • el-select会溢出
  • idea static加入图片后 不显示
  • jquery实现Tab选项卡菜单
  • css实现右上角的hot图标
  • java在线文件预览解决方案 kkFileView
  • 印象笔记导出为pdf
  • SimpleDateFormat 线程安全问题
  • java 将下划线方式命名的字符串转换为驼峰式
  • lombok @Accessors用法详解
  • 工作总结 建议意见
  • 部门树生成 双重for循环代替递归 java
  • $translatePartialLoader加载失败及解决方式
  • ES6之路之模块详解
  • Intervention/image 图片处理扩展包的安装和使用
  • JAVA_NIO系列——Channel和Buffer详解
  • JAVA之继承和多态
  • Spring Cloud(3) - 服务治理: Spring Cloud Eureka
  • windows下使用nginx调试简介
  • 对象引论
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • #define,static,const,三种常量的区别
  • #Linux(帮助手册)
  • #LLM入门|Prompt#2.3_对查询任务进行分类|意图分析_Classification
  • #数学建模# 线性规划问题的Matlab求解
  • (poj1.3.2)1791(构造法模拟)
  • (二)JAVA使用POI操作excel
  • (附源码)ssm旅游企业财务管理系统 毕业设计 102100
  • (免费领源码)Java#ssm#MySQL 创意商城03663-计算机毕业设计项目选题推荐
  • (强烈推荐)移动端音视频从零到上手(下)
  • (十八)devops持续集成开发——使用docker安装部署jenkins流水线服务
  • (十一)JAVA springboot ssm b2b2c多用户商城系统源码:服务网关Zuul高级篇
  • (万字长文)Spring的核心知识尽揽其中
  • (译)计算距离、方位和更多经纬度之间的点
  • ./configure,make,make install的作用(转)
  • .NET gRPC 和RESTful简单对比
  • .NET分布式缓存Memcached从入门到实战
  • .net中我喜欢的两种验证码
  • @Query中countQuery的介绍
  • @synthesize和@dynamic分别有什么作用?
  • []error LNK2001: unresolved external symbol _m
  • [3D游戏开发实践] Cocos Cyberpunk 源码解读-高中低端机性能适配策略
  • [Android Pro] listView和GridView的item设置的高度和宽度不起作用
  • [Angular] 笔记 16:模板驱动表单 - 选择框与选项
  • [Avalon] Avalon中的Conditional Formatting.
  • [C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计
  • [C++] 多线程编程-thread::yield()-sleep_for()
  • [C++] 统计程序耗时
  • [Eclipse] 详细设置护眼背景色和字体颜色并导出
  • [element-ui] el-dialog 中的内容没有预先加载,因此无法获得内部元素的ref 的解决方案
  • [GYCTF2020]Ez_Express
  • [hdu 2896] 病毒侵袭 [ac自动机][病毒特征码匹配]