`
qzww5324
  • 浏览: 37342 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

关于多字段多对多关系的映射

阅读更多
目前数据库有三张表 分别是 t_purview,t_folder,t_role,然后以他们的主键为外键建立了一张中间表

pur_role_folder_fun

其中的字段包括 pur_id,folder_id,role_id ,三个字段分别为A,B,C的外键 ,并且以三个外键建立联合主键

数据库的结构:
     


三个类的属性分别为:

     public class Folder{
             ...
           private Set<Role> roles;
           private Set<Purview> purviews;  
     }


     public class Purview{
             ...
           private Set<Role> roles;
	   private Set<Folder> folders;
     }


     public class Role{
             ...
           private Set<Role> folders;
           private Set<Purview> purviews;  
     }




想请教下下面的这种hibernate 映射写法是否有问题


以下为 对应类 Role 的映射
    <set name="purviews" table="pur_role_folder_fun" cascade="save-update">
	<key column="role_id" />
	<many-to-many class="com.yzmoa.pubdir.entity.Purview" column="pur_id"></many-to-many>
    </set>		
    <set name="folders" table="pur_role_folder_fun"  cascade="save-update">
	<key column="role_id" />
	<many-to-many class="com.yzmoa.pubdir.entity.Folder" column="folder_id"></many-to-many>
    </set>

以下为 对应类 Purview 的映射
     <set name="roles" table="pur_role_folder_fun" cascade="save-update" >
	  <key column="pur_id" />
	  <many-to-many class="com.yzmoa.core.entity.Role" column="role_id"></many-to-many>
      </set>
      <set name="folders" table="pur_role_folder_fun" cascade="save-update" >
	   <key column="pur_id" />
	   <many-to-many class="com.yzmoa.pubdir.entity.Folder" column="folder_id"></many-to-many>
       </set>

以下为 对应类 Folder的映射
       <set name="roles" table="pur_role_folder_fun" cascade="save-update">
	  <key column="folder_id"/>
	  <many-to-many class="com.yzmoa.core.entity.Role" column="role_id" ></many-to-many>
	</set>
	<set name="purviews" table="pur_role_folder_fun" cascade="save-update">
	   <key column="folder_id"/>
	   <many-to-many class="com.yzmoa.pubdir.entity.Purview" column="pur_id" ></many-to-many>
	</set>


-----------------------------------------------------------------------------------------

现在在开发中,我遇到的问题是 当向数据库中插入一个Folder对象(属性中的purview集合和role集合都有值)时,
我把它执行的sql打印出来后发现 除在t_folder中加入一条记录外 ,在pur_role_folder_fun中也会做插操作,但是只是插入3个字段中的2个值。

以下是输出的sql :
insert into pur_role_folder_fun (folder_id, role_id) values (?, ?)


如果是
insert into pur_role_folder_fun (folder_id, role_id,pur_id) values (?, ?,?)
这是我
要的效果

麻烦各位了!谢谢
  • 大小: 101.5 KB
分享到:
评论
1 楼 DynamicMan 2009-09-05  
你的意思是实现t_folder和t_role这两张表的多对多关系吧,如果是的话,那么你这个关联映射简直不能再看下去了

相关推荐

    JPA实体映射对时间字段的处理

    JPA实体映射对时间字段的处理,使用的JPA比较流行

    jpa的实体映射关系7种

    单向一对一 双向一对一 单向一对多 双向一对多 双向多对一 单向多对多 双向多对多

    arcgis自动导入字段:利用模板批量导入字段tbx

    使用arcgis可能常常遇到需要在属性表里添加非常多的字段,遇到这种情况很多人使用连接的方法来解决,但是当需要添加的图层比较多的时候,就十分麻烦,于是我就开发了这款arcgis工具箱。 工具箱有三个功能: 1.从已...

    基于java的企业级应用开发:MyBatis的关联映射.ppt

    9.1 关联关系概述 在关系型数据库中,多表之间存在着三种关联关系,分别为一对一、一对多和多对多,如下图所示: 一对一 一对多 多对多 在任意一方引入对方主键作为外键; 在“多”的一方,添加“一”的一方的主键...

    kettle常见控件(输入、输出,字段选择、设置变量、记录集连接、值映射、字符串替换、js、Java)的使用案例

    包括数据库迁移,增量抽取,多表合成一张表,一个字段拆分成多字段,数据正则过滤、kitchen部署调优等案例,内含相应数据库的SQL脚本、kjb、ktr文件,以及使用过程中会经常遇到的bug注意事项

    Hbernate Annotation多对多映射

    NULL 博文链接:https://xhfei.iteye.com/blog/691322

    OrderByInterceptor,配合PageHelper实现字段排序插件

    OrderByInterceptor,配合PageHelper实现字段排序插件,前端传入要排序的字段和排序规则,插件自动将实体字段映射成数据库字段,不用设置表明前缀。插件通过ResultMap或ResultType读取映射关系,若没有设置,则根据...

    csv字段导入映射器

    关于LaravelLaravel是一个具有表达力,优雅语法的Web应用程序框架。 我们认为,发展必须是一种令人愉悦的创造力,才能真正实现。 Laravel通过减轻许多Web项目中使用的常见任务来减轻开发工作的痛苦,例如: 。 。 ...

    MyBatis的关联关系 一对多关系 、collection 标签

    打个比方,淘宝上,一个用户他拥有多个订单,而这几个订单单独属于此用户,这个关联关系就叫一对多关系。在数据库中则表示为两张表互相关联,如用户表(A表)关联订单表(B表),那么A表的一行数据就和B表的多条数据产生...

    react-field-mapping:基于React的表格映射关系组件

    关系映射组件 View the and its for more. 使用中需要注意的一点是relation,是由组件内部控制的,所以是不受控的,连线后组件内部relation改变,连线也是组件内部控制。但是外部传入的relation是可以改变内部的...

    java实现多层嵌套循环参数转换

    多层嵌套循环 参数转换 数据库配置报文父子级结构 java实现

    houseelectricsorm:android上sqlite的对象关系映射

    可自定义类型到数据库字段映射 深度加载 原始查询 延迟加载 这是计划的内容: 包含和非包含关系的模型区别 - 启用级联删除 更多延迟加载测试 数据迁移/多并发模式版本支持 ##Support - 征求意见 电子邮件支持:[ ] ...

    VB/C#.Net实体代码生成工具(EntitysCodeGenerate)【ECG】4.7 201705更新

    从数据库中生成表对应的VB/C#实体代码,并提取表及字段的注释等信息,亦可对生成的实体数据类型进行各种自定义的设置和方便的数据库操作等。如数据库列和VB/C#代码类型的映射、实体命名空间、代码个性化注释、是否...

    mybatis-plus-join是mybatis plus的一个多表插件

    mybatis-plus的多表插件完全按照mybats plus的用法来做,支持一对一返回映射,多对多返回映射,自定义返回Vo,自定义表别名,自定义查询字段,你只要会mp,那你就会用mpj,无感引入,不会对之前的业务产生一点点影响...

    自动生成java实体类和映射文件

    读取mysql数据库,创建所有的Entity实体类,实体类里面有对应的注释,...mapper.xml文件里面配置了resultMap,实现字段映射 mapper.xml文件里面配置了insert语句,两个配置为了当数据特别多的时候,免去很多工作量。

    自动生成java实体类和mybatis映射文件

    读取mysql数据库,创建所有的Entity实体类,实体类里面有对应的注释,...mapper.xml文件里面配置了resultMap,实现字段映射 mapper.xml文件里面配置了insert语句,两个配置为了当数据特别多的时候,免去很多工作量。

    jpa复杂查询,映射DTO,自动映射无需关注类型,不用建构造函数

    jpa复杂查询,映射到...采用新方法,加注解,在返回时候直接映射到具体的DTO上,可以自动下划线转驼峰,忽略大小写,忽略类型,只要属性名和字段名一致就可以映射,太方便了。。这样用jpa就比其他的mybatis方便多了。

    MyBatis数据持久层框架 v3.5.13

    MyBatis的前身就是iBatis。是一个数据持久层(ORM)框架。 MyBatis SQL映射器框架使将关系数据库与面向对象的应用程序结合使用变得更加容易...1、SQL语句的编写工作量较大,尤其当字段多、关联表多时,对开发人员编写SQ

    一款存储器映射和多功能的LCD控制驱动芯片VK2C23.pdf

    VK2C23 是一款存储器映射和多功能 的 LCD 控制 / 驱动芯片。该芯片的显示字段为 224 点 (56 SEG × 4 COM) 或 416 点 (52 SEG × 8 COM)。VK2C23 芯片的软件配置特 性使其适用于多种 LCD 应用,包括 LCD 模块和 显示...

    ecs-mapping:将Corelight或Zeek数据映射到Elastic Common Schema字段

    Corelight弹性通用架构映射概述Elastic Common Schema( )是一种在Elastic中跨多个数据源统一字段名称的方法。 该映射使用Elastic的摄取节点管道将Corelight或Zeek数据类型连接到相关的Elastic Common Schema字段...

Global site tag (gtag.js) - Google Analytics