CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  架构、设计

hibernate中多关键字表之间关联出问题

楼主songqian()2005-09-07 16:40:56 在 Java / 架构、设计 提问

最近刚开始接触hibernate,在做到多关键字表之间关联出了点问题,想向大家请教一下。  
      创建两个表一个名叫db_contract_container表,关键字为dr_no,vessel_no,voyage_no。另一个表为db_contract_container_cargo,关键字为dr_no,vessel_no,voyage_no,cargo_no。当两个表建立主健关联即container的dr_no,vessel_no,voyage_no与cargo的dr_no,vessel_no,voyage_no关联后  
  总会报这样的错误:Foreign   key   (FKFBF0D4ACFBC02852:db_contract_container_cargo   [dr_no]))   must   have   same   number   of   columns   as   the   referenced   primary   key   (db_contract_container   [dr_no,vessel_no,voyage_no])。  
      其中hibernate中的xml文件是eclipse插件根据数据库自动生成的,cargo表的描述文件为  
          <class   name="DbContractContainerCargo"   table="db_contract_container_cargo">  
                  <composite-id   name="id"   class="DbContractContainerCargoKey">  
                          <key-property   name="cargoNo"   column="cargo_no"   type="string"/>  
                          <key-many-to-one   name="dbContractContainer"   column="dr_no"                         class="DbContractContainer"/>  
                          <key-many-to-one   name="dbContractContainer1"   column="vessel_no"   class="DbContractContainer"/>  
                          <key-many-to-one   name="dbContractContainer2"   column="voyage_no"   class="DbContractContainer"/>  
                  </composite-id>  
  container表的描述文件为  
          <class   name="DbContractContainer"   table="db_contract_container">  
                  <composite-id   name="id"   class="DbContractContainerKey">  
                          <key-property   name="drNo"   column="dr_no"   type="string"/>  
                          <key-property   name="vesselNo"   column="vessel_no"   type="string"/>  
                          <key-property   name="voyageNo"   column="voyage_no"   type="string"/>  
                  </composite-id>  
                  <set   name="dbContractContainerCargoSet"   inverse="true">  
                          <key   column="dr_no"/>  
                          <one-to-many   class="DbContractContainerCargo"/>  
                  </set>  
     
                  <set   name="dbContractContainerCargo1Set"   inverse="true">  
                          <key   column="vessel_no"/>  
                          <one-to-many   class="DbContractContainerCargo"/>  
                  </set>  
     
                  <set   name="dbContractContainerCargo2Set"   inverse="true">  
                          <key   column="voyage_no"/>  
                          <one-to-many   class="DbContractContainerCargo"/>  
                  </set>  
  请问报的错误是什么原因,当我把container表设为单主健时,错误就消失了。谢谢大家帮忙解答一下  
  问题点数:20、回复次数:2Top

1 楼jacshan(猎人)回复于 2005-09-18 22:00:26 得分 20

不知道,帮顶!!Top

2 楼songqian()回复于 2005-09-19 16:14:23 得分 0

问题原因找到了,是由于插件自动生成的xml文件有问题将container表的描述文件中set改动一下即可  
  <set   name="dbContractContainerCargoSet"   inverse="true"  
  table="db_contract_container_cargo"   cascade="delete">  
  <key   not-null="true">  
  <column   name="dr_no"   />  
  <column   name="vessel_no"   />  
  <column   name="voyage_no"   />  
  </key>  
  <one-to-many   class="DbContractContainerCargo"   />  
  </set>  
  将原来的3个set改为一个setTop

相关问题

  • 表名和关键字重名
  • BDE取表的主关键字
  • 100分!!!问hibernate表间关联问题
  • hibernate中关联表的设计问题
  • 关键字:hibernate, No TransactionManagerLookup specified,Not binding factory to JNDI, no JNDI name configured
  • 〉〉〉在SQL中如何获得一个表的主键字段,又如何获得用这个关键字段与这个表建立关联的其他表的名称??
  • 如何分析出一个表的关键字段???也就是关键字段的信息在哪里存储?
  • 如何实现:输入“关键字1、关键字2”,以“、”表示“或”,对库中某字段进行检索。
  • 如何快速地从关键字列表中检索某一字符串内包含的对应关键字
  • 有四个表,没有关联,字段不一样,想在四个表同时搜索同一关键字,得到的结果分页显示,请问SQL该怎么写??

关键词

  • 文件
  • hibernate
  • db
  • 关键字
  • 表
  • voyage
  • vessel
  • cargo
  • 关联
  • contract

得分解答快速导航

  • 帖主:songqian
  • jacshan

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo