在多表映射配置时,我们应该遵循以下不步骤:

  1. 确定两张表之间的关系
  2. 在数据库中实现两张表之间的关系建立
  3. 在实体类中描述出两个实体类之间的关系
  4. 在映射配置文件中建立两个实体和两张表之间的关系
    我们就按照上面的步骤做,我这里有一张联系人表和一张客户表,一对多关系,实体类代码如下:
/*** 客户的实体类* @author dengg**/
public class Customer {private Long custId;private String custName;private String custSource;private String custIndustry;private String custLevel;private String custAddress;private String custPhone;public Long getCustId() {return custId;}public void setCustId(Long custId) {this.custId = custId;}public String getCustName() {return custName;}public void setCustName(String custName) {this.custName = custName;}public String getCustSource() {return custSource;}public void setCustSource(String custSource) {this.custSource = custSource;}public String getCustIndustry() {return custIndustry;}public void setCustIndustry(String custIndustry) {this.custIndustry = custIndustry;}public String getCustLevel() {return custLevel;}public void setCustLevel(String custLevel) {this.custLevel = custLevel;}public String getCustAddress() {return custAddress;}public void setCustAddress(String custAddress) {this.custAddress = custAddress;}public String getCustPhone() {return custPhone;}public void setCustPhone(String custPhone) {this.custPhone = custPhone;}@Overridepublic String toString() {return "Customer [custId=" + custId + ", custName=" + custName + ", custSource=" + custSource+ ", custIndustry=" + custIndustry + ", custLevel=" + custLevel + ", custAddress=" + custAddress+ ", custPhone=" + custPhone + "]";}public Customer(Long custId, String custName) {super();this.custId = custId;this.custName = custName;}public Customer() {}}
/*** 联系人的实体类* @author dengg**/
public class LinkMan implements Serializable {private Long lkmId;private String lkmName;private String lkmPhone;private String lkmMobile;private String lkmEmail;private String lkmPosition;private String lkmMemo;public Long getLkmId() {return lkmId;}public void setLkmId(Long lkmId) {this.lkmId = lkmId;}public String getLkmName() {return lkmName;}public void setLkmName(String lkmName) {this.lkmName = lkmName;}public String getLkmPhone() {return lkmPhone;}public void setLkmPhone(String lkmPhone) {this.lkmPhone = lkmPhone;}public String getLkmMobile() {return lkmMobile;}public void setLkmMobile(String lkmMobile) {this.lkmMobile = lkmMobile;}public String getLkmEmail() {return lkmEmail;}public void setLkmEmail(String lkmEmail) {this.lkmEmail = lkmEmail;}public String getLkmPosition() {return lkmPosition;}public void setLkmPosition(String lkmPosition) {this.lkmPosition = lkmPosition;}public String getLkmMemo() {return lkmMemo;}public void setLkmMemo(String lkmMemo) {this.lkmMemo = lkmMemo;}@Overridepublic String toString() {return "LinkMan [lkmId=" + lkmId + ", lkmName=" + lkmName + ", lkmPhone=" + lkmPhone + ", lkmMobile="+ lkmMobile + ", lkmEmail=" + lkmEmail + ", lkmPosition=" + lkmPosition + ", lkmMemo=" + lkmMemo + "]";}}

第二步在数据库中实现两张表之间的关系建立,因为我用了hibernate,会自动创建,就不弄了
第三步在实体类中描述出两个实体类之间的关系:
首先我们在Customer类中配置LinkMan类的关系,一个客户对应多个联系人
我们在Customer加入如下代码:

private Set<LinkMan> likmans = new HashSet<LinkMan>(0);public Set<LinkMan> getLikmans() {return likmans;}public void setLikmans(Set<LinkMan> likmans) {this.likmans = likmans;}

主表应该包含从表实体的集合引用,用set集合来建立关系,再配置set和get方法,就行了。
接着配置LinkMan,加入代码如下:

private Customer customer;public Customer getCustomer() {return customer;}public void setCustomer(Customer customer) {this.customer = customer;}

第四步在映射配置文件中建立两个实体和两张表之间的关系:
我们先打开Customer.hbm.xml文件,里面加入配置如下:

     <set name="likmans" table="cust_linkman"><key column="lkm_cust_id"></key><one-to-many class="LinkMan"/></set>

name:就是我们在Customer类中设置set集合的名字
table:指定从表的名字,也就是联系人表名
key:指定外键字段名
one-to-many:指定从表实体名称
然后打开LinkMan.hbm.xml文件,在里面加入如下代码:

<many-to-one name="customer" class="Customer" column="lkm_cust_id"></many-to-one>

name:从表实体引用主表实体对象引用的名称吗,就是在LinkMan类中设置Customer对象的名称
class:指定属性所对应的实体类名称,就是Customer路径
column:指定外键的名称

Struts2一对多配置相关推荐

  1. Struts2之环境配置

    在学习struts2之前,首先我们要明白使用struts2的目的是什么?它能给我们带来什么样的好处? 设计目标 Struts设计的第一目标就是使MVC模式应用于web程序设计.在这儿MVC模式的好处就 ...

  2. jeecg boot一对多新增的附表不会主键是一个string_测试开发专题:spring-boot如何使用JPA进行双向一对多配置...

    本片文章我们主要介绍spring-boot如何进行JPA的配置以及如何进行实体间的一对多配置. 依赖准备 要在spring-boot使用jpa需要在项目中有进入相关的依赖,pom文件里加入下面内容 & ...

  3. struts2+hibernate+spring配置详解

    #struts2+hibernate+spring配置详解 struts2+hibernate+spring配置详解 哎 ,当初一个人做好难,现在终于弄好了,希望自学这个的能少走些弯路. 以下是自己配 ...

  4. struts2 mysql配置文件路径_Struts2(四)Struts2配置文件的配置

    Struts2的常见配置 1.Struts2的配置文件的加载顺序: 每次从客户端发送到请求到服务器都要先从Struts2的核心过滤器StrutsPrepareAndExeccuteFilter,这个过 ...

  5. struts2.2 json配置

    转至:http://maxrocray.iteye.com/blog/1142438 很久没有做web了,温习下struts2的json配置. 所需Jar包如下:注意加上javassist.jar,O ...

  6. struts2学习:配置篇值请求处理元素

    对请求进行处理的元素主要有interceptors.Action以及Result.下面分别对其进行讲述. 1.拦截器配置(interceptors) 通过使用拦截器,我们可以在action中的方法执行 ...

  7. 转载 - Struts2基于XML配置方式实现对action的所有方法进行输入校验

    出处:http://www.cnblogs.com/Laupaul/archive/2012/03/15/2398360.html http://www.blogjava.net/focusJ/arc ...

  8. mybatis关联配置(一对多配置)

    敲代码也有不少日子了,今天碰到个需求,就是定时器生成一张表,但是这个表的某些数据是从另外两张表中拿到的,定外两张表又是一对多的关系,想着咋在一个接口就能敲出来,大概结构如下 然后需要a表的数据(比如张 ...

  9. Hibernate框架--学习笔记(中):一对多配置、多对多配置

    一.一对多: 一个客户可以有多个联系人,一个联系人只能属于一个客户. 1.一对多映射配置: (1)创建实体类 //客户类:一个客户可以有多个联系人,一个联系人只能属于一个客户 public class ...

最新文章

  1. 安卓中如何实现滑动导航
  2. ABB机器人ROBOTSTUDIO中轨迹与二次开发的问答
  3. YBTOJ:公共子串(KMP)
  4. 32个机械动图,揭秘生活中制造原理
  5. HashMap 的 7 种遍历方式与性能分析!「修正篇」
  6. IOS UITouch 触摸事件,UIResponder 的作用
  7. mac android 证书生成工具,MAC系统下,生成安卓证书的命令
  8. 《统计学习方法》(李航)读书笔记(完结)超级火爆的总结
  9. Exchange2003/2010共存模式环境迁移
  10. mysql子查询sysdate_MySQL T6 数据库操作——查询(三)高级查询
  11. postgresql树形结构查询
  12. java myeclipse的好处,关于MyEclipse_MyEclipse用途_MyEclipse优势
  13. 关于麒麟座开发板串口打印乱码与其它工程用官方源码出问题的解决方案
  14. echarts 省市区联动地图
  15. 基于OpenCV-python3实现抠图替换背景图
  16. ysoserial CC5利用链分析
  17. HTML-背景和图片
  18. 【唐老狮】商业游戏开发前后端程序区别
  19. 华为od统一考试B卷【机器人走迷宫】Java 实现
  20. 开发人员(程序员)怎么写技术文档

热门文章

  1. 分享轮子-flutter下拉刷新上拉加载
  2. 解决IE8下body{ overflow:hidden;}无效的解决办法
  3. Java属性中指定Json的属性名称(序列化和反序列化)
  4. Linux 常用命令二 pwd cd
  5. 递归和分治的概念性的理解
  6. webpack基础入门
  7. Problem E: 平面上的点——Point类 (II)
  8. BZOJ3130: [Sdoi2013]费用流[最大流 实数二分]
  9. Scala学习笔记-环境搭建以及简单语法
  10. POJ 1860: Currency Exchange 【SPFA】