Hibernate一对多/多对一关系映射详解及相应的增删查改操作

本文详细介绍了Hibernate中一对多和多对一的关系映射,以客户与订单关系为例,展示了如何在实体模型类和映射文件中建立关联,并进一步进行了增删查改的实战演练。
摘要由CSDN通过智能技术生成
以客户与订单的关系为例

1.在实体模型类中绑定两者关系:
客户类:

public class Customer {
   
    private Integer id;//客户id
    private String name;//客户名称

    //一对多属性描述,一个客户有n个订单
    private Set<Order> orders = new HashSet<Order>();

    public Integer getId() {
   
        return id;
    }

    public void setId(Integer id) {
   
        this.id = id;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public Set<Order> getOrders() {
   
        return orders;
    }

    public void setOrders(Set<Order> orders) {
   
        this.orders = orders;
    }
}

订单类:

public class Order {
   
    private Integer id;//订单ID,工作中订单ID一般都UUID类型
    private String name;//订单名称

    private Customer customer;//订单只属性某个客户

    public Integer getId() {
   
        return id;
    }

    public void setId(Integer id) {
   
        this.id = id;
    }

    public String getName() {
   
        return name;
    }

    public void setName(String name) {
   
        this.name = name;
    }

    public Customer getCustomer() {
   
        return customer;
    }

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

2.在映射文件中绑定两者关系:
客户类的映射文件Customer.hbm.xml:

<!DOCTYPE hibernate-mapping PUBLIC 
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">
<hibernate-mapping package="com.moli.hibernate.domain">
	<class name="Customer" table="t_customer">
		
		<id name="id">
			<generator class="native"/>
		</id>

		<!--模型和表的字段名一样,column可以不用写-->
		<property name="name"/>

		<!--描述一对多关系
			key中column写的是外键名称
			one-to-many:一对多,里面写class,写多的一方

			inverse:是hibernate双向关系中的基本概念。
					inverse
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值