iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >基于Jpa中ManyToMany和OneToMany的双向控制
  • 739
分享到

基于Jpa中ManyToMany和OneToMany的双向控制

2024-04-02 19:04:59 739人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录Jpa ManyToMany和OneToMany的双向控制1、ManyToMany   2、OneToMany以及ManyToOneJPA中ManyToMany关系问题解决办法J

Jpa ManyToMany和OneToMany的双向控制

下面我们使用权限管理中Role<->Account(用户ManyToMany账号)、Role<->Domain(用户OneToMany权限域)的关系来举例。   

1、ManyToMany   

Role表   

这里写图片描述

Account表   

这里写图片描述

在两个表的对应属性上添加JoinColumns和inverseJoinColumns,并且相互交换。   

  • JoinColumn指定本表在中间表中的列名。   
  • inverseJoinColumns指定受控方的列名。   

在两个类中都加上这两个属性,并且值互换,则能够实现双向控制,即任何一方删除,都会自动删除对应中间表的数据。

2、OneToMany以及ManyToOne

Role表   

这里写图片描述

Domain表   

这里写图片描述

cascade用来指定级联操作, cascade的值只能从CascadeType.PERSIST(级联新建)、CascadeType.REMOVE(级联删除)、CascadeType.REFRESH(级联刷新)、CascadeType.MERGE(级联更新)中选择一个或多个。还有一个选择是使用CascadeType.ALL,表示选择全部四项。   

如果不指定Cascade,默认是空的,那么在删除Role的时候,只会把Domain表中的role这一列的值删除,而该条记录不删除。   

JoinColumn需要指定,如果不指定就会在Domain表中增加额外的一列,这一列与Domain的id一样。经过试验,不指定还会造成级联查找失败,原因未知。

JPA中ManyToMany关系问题

配置JPA的时候多对多关系,报以下错误:

org.hibernate.AnnotationException: Illegal use of mappedBy on both sides of the relationship: com.csair.gme.core.domain.ComponentType.componentPropertys

解决办法

不能两边都用mappedBy,只能用一边,而且用mappedBy的那一边是从表,另外一边就是主表。mappedBy=‘主表里的变量名'

问题解决!

以上为个人经验,希望能给大家一个参考,也希望大家多多支持编程网。

--结束END--

本文标题: 基于Jpa中ManyToMany和OneToMany的双向控制

本文链接: https://www.lsjlt.com/news/159235.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 基于Jpa中ManyToMany和OneToMany的双向控制
    目录Jpa ManyToMany和OneToMany的双向控制1、ManyToMany   2、OneToMany以及ManyToOneJPA中ManyToMany关系问题解决办法J...
    99+
    2024-04-02
  • Jpa中ManyToMany和OneToMany的双向控制举例分析
    这篇文章主要介绍“Jpa中ManyToMany和OneToMany的双向控制举例分析”,在日常操作中,相信很多人在Jpa中ManyToMany和OneToMany的双向控制举例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法...
    99+
    2023-06-21
  • 基于Python和Django的大数据分析和Git版本控制
    近年来,随着大数据技术的不断发展和普及,越来越多的企业开始注重对数据的分析和挖掘。而Python和Django作为目前最流行的编程语言和Web框架之一,已经成为大数据分析和Git版本控制的首选工具。 Python作为一种简洁、易读、易学的编...
    99+
    2023-07-11
    django 大数据 git
  • PHP中基于控制器的路由实现方式
    随着Web应用程序的复杂性增加,有效管理URL和路由成为了开发过程中的一个重要任务。在PHP中,可以使用基于控制器的路由实现方式来解决这个问题。本文将介绍基于控制器的路由实现方式,并提供具体的代码示例。基本原理基于控制器的路由实现方式是指将...
    99+
    2023-10-21
    PHP 控制器路由 基于控制器的路由实现 PHP 控制器路由方式
  • Java11中基于嵌套关系的访问控制优化详解
    目录前言Java11 之前的实现方式技术债务Java11 中的实现Nestmate 新增的 APIgetNestHostgetNestMembersisNestmateOf后续的改进...
    99+
    2024-04-02
  • Java11 中基于嵌套关系的访问控制优化问题
    目录Java11 之前的实现方式技术债务Java11 中的实现Nestmate 新增的 APIgetNestHostgetNestMembersisNestmateOf后续的改进 你...
    99+
    2024-04-02
  • PHP中基于注解的路由解析和动态控制器加载实现方式
    随着Web应用程序的复杂性不断增加,路由管理和控制器的加载成为了开发过程中一个重要的环节。传统的路由解析和控制器加载方式需要手动配置路由规则和控制器类,而且需要频繁的更新和维护,这在大型应用中会变得非常繁琐和低效。为了解决这个问题,可以借助...
    99+
    2023-10-21
    路由解析 注解 动态控制器加载
  • 智能财务基础迈向高效、智能化的财务管理和控制
    随着科技的发展,人工智能技术已经渗透到了各个行业,其中,智能财务基础就是其中一个重要的领域。智能财务基础的出现,不仅可以提高财务管理和控制的效率,还可以让财务决策更加科学和准确。本文将从智能财务基础的定义、应用和未来发展方向三个方面,深入探...
    99+
    2023-11-17
    高效 财务管理 财务
  • 怎么使用CSS中用于控制层叠的inherit和initial
    本篇内容主要讲解“怎么使用CSS中用于控制层叠的inherit和initial”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用CSS中用于控制层叠的inh...
    99+
    2024-04-02
  • Java11中如何解决基于嵌套关系的访问控制优化问题
    这篇文章主要为大家展示了Java11中如何解决基于嵌套关系的访问控制优化问题,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带大家一起来研究并学习一下“Java11中如何解决基于嵌套关系的访问控制优化问题”这篇文章吧。Java...
    99+
    2023-06-26
  • 如何理解MySQL管理基础中的安全、访问控制和权限
    如何理解MySQL管理基础中的安全、访问控制和权限,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。MySQL权限系统确保所有的用...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作