数据库修改多对多的中间表的记录的技巧

一、把中间表相应的字段先删除,然后再添加
*当单方表是从数据库中查得持久化对象必须把此对象的set容器用clear()清空,
*同时把一对多的级联配置文件中的级联风格设置为cascade="all,delete-orphan",
*把中间表中要修改的对象对应的数据全部删除,
*通过save()或merge()重新持久化中间表的对象
------此种方法可以在只修改中间表的数据,而不修改单方表的数据时。
二、通过级联来修改单方表同时修改中间表
*当单方表是从数据库中查得持久化对象必须把此对象的set容器用clear()清空,
*同是把一对多的级联配置文件中的级联风格设置为cascade="all,delete-orphan",
*把中间表对应的po对象添加到单方表的set容器中,
*利用merger()修改单方表。
------此种方法可以在单方表和中间表同时修改时使用。

(0)

相关推荐

  • 关于多对多关系表无法更新与插入的问题

    在EF里,我们设计模型时,会设计到多对多关系,在EF里会把这种关系会转成两个一对多的关系表,这是比较友好的,因为多对多来说,对于业务本身没什么意思,所以隐藏了,没什么坏处,但对于这个隐藏来说,对开发人员来讲你就无法主动控制这张关系表了,而需要使用EF的update来更新主表的同时去更新关系表,这对于初学者会出现一些问题,今天说的就是多对多关系无法更新和插入的问题. 数据结构 public partial class WebManageRoles : Lind.DDD.Domain.Entity

  • 数据库修改多对多的中间表的记录的技巧

    一.把中间表相应的字段先删除,然后再添加 *当单方表是从数据库中查得持久化对象必须把此对象的set容器用clear()清空, *同时把一对多的级联配置文件中的级联风格设置为cascade="all,delete-orphan", *把中间表中要修改的对象对应的数据全部删除, *通过save()或merge()重新持久化中间表的对象 ------此种方法可以在只修改中间表的数据,而不修改单方表的数据时. 二.通过级联来修改单方表同时修改中间表 *当单方表是从数据库中查得持久化对象必须把此

  • Mysql数据库性能优化三(分表、增量备份、还原)

    接上篇Mysql数据库性能优化二 对表进行水平划分     如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻辑上可以划分.一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势.比如系统界面上只提供按月查询的功能,那么把表按月拆分成12个,每个查询只查询一个表就够了.如果非要按照地域来分,即使把表拆的再小,查询还是要联合所有表来查,还不如不拆了.所以一个好的拆分依据是 最重要的

  • 在ASP.NET 2.0中操作数据之六十一:在事务里对数据库修改进行封装

    导言: 正如我们在第16章<概述插入.更新和删除数据>里探讨的那样,GridView控件内建的功能支持对每行数据的编辑和删除功能,你只需要稍稍动一下鼠标就可以创建丰富的数据修改界面而不用写一行代码.但是,在某些情况下,这还不够,我们需要让用户能够成批地处理数据. 比如,很多基于web(web-based)的电子邮件客户端,将所有邮件出来,每条邮件除了包含邮件信息(主题.发送者等)外,还包含一个checkbox控件.这些界面允许用户同时删除多个邮件,用户只需要选中邮件,再点"删除所选邮

  • mysql数据库入门第一步之创建表

    创建数据库 右键-新建数据库 输入库名.选择字符集和排序规则,点确定 创建数据库成功 新建表 my-表-右键-新建表 如上图所示,在第一个标签页"栏位"中 名:字段的名字 类型:字段的类型,有几十种,常用的有以下几种 char,可以存定长的字符串 varchar,可以存变长的字符串(定长和变长的区别在长度中介绍) int,可以存-2^31 (-2,147,483,648) 到 2^31 - 1 (2,147,483,647) 之间的数字 datetime,可以存日期类型的数据 长度:数

  • MariaDB Spider 数据库分库分表实践记录

    目录 分库分表 部署 MariaDB 实例 Docker 部署 虚拟机部署 MariaDB 配置 检查每个实例 配置 Spider 远程表 基准性能测试 加入后端数据库 哈希分片 根据值范围分片 根据列表分片 分库分表 一般来说,数据库分库分表,有以下做法: 按哈希分片:根据一条数据的标识计算哈希值,将其分配到特定的数据库引擎中: 按范围分片:根据一条数据的标识(一般是值),将其分配到特定的数据库引擎中: 按列表分片:根据某些字段的标识,如果符合条件则分配到特定的数据库引擎中. 分库分表的做法有

  • Python实现将sqlite数据库导出转成Excel(xls)表的方法

    本文实例讲述了Python实现将sqlite数据库导出转成Excel(xls)表的方法.分享给大家供大家参考,具体如下: 1. 假设已经安装带有sliqte 库的Python环境 我的是Python2.5 2. 下载 python xls 写操作包(xlwt)并安装 下载地址: http://pypi.python.org/pypi/xlwt 3. 下面就是代码(db2xls.py): import sqlite3 as sqlite from xlwt import * #MASTER_COL

  • Ajax 向数据库修改和添加功能(较简答)

    修改和添加关于数据库的信息,可以用于任何的添加和修改这些数据库和前面的随笔数据库是一样的 一.显示出数据库中的信息 (1)显示的效果也可以是用bootstrap的标签页显示(前面一定要引入bootstrap) <ul id="myTab" class="nav nav-tabs"> <li class="active" style=" font-size:30px" ><a href="

  • SQL小技巧 又快又简单的得到你的数据库每个表的记录数

    但是如何得到某个数据库所有的表的记录数,你要是用上面的方法估计得累死了.呵呵 下面提供如何借用sysindexes和sysobjects表来得到某个数据库每个表记录数的方法: 先给出SQL Server 2000版本的: 复制代码 代码如下: SELECT o.NAME, i.rowcnt FROM sysindexes AS i INNER JOIN sysobjects AS o ON i.id = o.id WHERE i.indid < 2 AND OBJECTPROPERTY(o.id

  • Django修改app名称和数据表迁移方案实现

    项目一开始的设计很重要,django中app的名称建议用小写 我的博客由两个app组成,Blog和JiaBlog,总觉得不美观,想改成小写的oblog和blog,那么最关键的地方在于和orm数据表的映射 把JiaBlog.articles改成blog.articles是终极目标,这里不推荐用django的migrate 写一个sql批量生成mysql改表名的语句 SELECT CONCAT( 'ALTER TABLE ', table_name, ' RENAME TO b', substrin

  • 详解Oracle数据库中自带的所有表结构(sql代码)

    目录 一.tb_emp(员工表) 1.建表 2.导入数据 3.查表 二.tb_dept(部门表) 1.建表 2.导入数据 3.查表 三.tb_bonus(奖金表) 1.建表 2.导入数据 3.查表 四.tb_salgrade(工资等级表) 1.建表 2.导入数据 3.查表 五.tb_users(用户表) 1.建表 2.导入数据 3.查表 六.tb_saldetail(工资详细表) 1.建表 2.导入数据 3.查表 一.tb_emp(员工表) 1.建表 CREATE TABLE "TEST&quo

随机推荐