Hibernate一对多关联双向关联代码实现分享

 更新时间:2013年12月23日 16:10:19   作者:  
Hibernate一对多关联双向关联代码实现分享,大家参考使用吧

1、创建实体类(Customer.java、Orders.java)

复制代码 代码如下:

package wck.stu.vo.oneToMany_single;

import java.util.HashSet;
import java.util.Set;

public class Customer {
    private String id = "";

    private String cName = "";

    private String bank = "";

    private String phone = "";

    private Set orders = new HashSet();

    public String getId() {
        return id;
    }

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

    public String getcName() {
        return cName;
    }

    public void setcName(String cName) {
        this.cName = cName;
    }

    public String getBank() {
        return bank;
    }

    public void setBank(String bank) {
        this.bank = bank;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Set getOrders() {
        return orders;
    }

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

   
}

Customer.java

复制代码 代码如下:

package wck.stu.vo.oneToMany_single;

public class Orders {
    private String id = "";

    private String orderNo = "";

    private Double money = 0.0;

    private Customer customer;

    public String getId() {
        return id;
    }

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

    public String getOrderNo() {
        return orderNo;
    }

    public void setOrderNo(String orderNo) {
        this.orderNo = orderNo;
    }

    public Double getMoney() {
        return money;
    }

    public void setMoney(Double money) {
        this.money = money;
    }

    public Customer getCustomer() {
        return customer;
    }

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

Orders.java

2、配置文件(Customer.hbm.xml、Orders.hbm.xml)

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="wck.stu.vo.oneToMany_single.Customer" table="CUSTOMER">
        <id name="id" type="java.lang.String">
            <column name="C_ID" length="32" not-null="true"></column>
            <generator class="uuid.hex"></generator>
        </id>
        <property column="CNAME" name="cName" type="string" length="100"/>
        <property column="BANK" name="bank" type="string" length="100"/>
        <property column="PHONE" name="phone" type="string" length="20"/>
        <!--一对多双向关联映射customer到orders,单的一方配置 -->
        <set cascade="all" inverse="true" lazy="false" name="orders">
            <key column="CUSTOMER_ID" />
            <one-to-many class="wck.stu.vo.oneToMany_single.Orders" />
        </set>
    </class>
</hibernate-mapping>

Customer.hbm.xml

复制代码 代码如下:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-mapping PUBLIC
    "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">

<hibernate-mapping>
    <class name="wck.stu.vo.oneToMany_single.Orders" table="ORDERS">
        <id name="id" type="java.lang.String">
            <column name="C_ID" length="32" not-null="true"></column>
            <generator class="uuid.hex"></generator>
        </id>
        <property column="ORDERNO" name="orderNo" type="java.lang.String" length="17"/>
        <property column="MONEY" name="money" type="java.lang.Double" />
        <many-to-one name="customer" class="wck.stu.vo.oneToMany_single.Customer" column="CUSTOMER_ID" cascade="all" lazy="false" not-null="true"/>
    </class>
</hibernate-mapping>

Orders.hbm.xml

3、测试代码

复制代码 代码如下:

public String saveCustomerInfo() {
        Customer customer = new Customer();
        customer.setcName("清华大学出版社");
        customer.setBank("9559501012356789");
        customer.setPhone("010-62772015");   
        Orders order = new Orders();
        order.setOrderNo(new Long(System.currentTimeMillis()).toString());
        order.setMoney(new Double(rnd.nextDouble()*10000));
        order.setCustomer(customer);
        customer.getOrders().add(order);
        oneToManyDao.saveCustormerInfo(customer);
        return customer.getId();
    }

相关文章

  • 详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

    详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)

    下面小编就为大家带来一篇详谈Java编程之委托代理回调、内部类以及匿名内部类回调(闭包回调)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-05-05
  • Java基础入门 Swing中间容器的使用

    Java基础入门 Swing中间容器的使用

    这篇文章主要介绍了Java基础入门 Swing中间容器的使用,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • SpringBoot实现跨域的几种常用方式总结

    SpringBoot实现跨域的几种常用方式总结

    跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,或者涉及到两个不同域名的资源之间的交互,由于同源策略(Same Origin Policy)的限制,浏览器不允许跨域请求,本文小编给大家分享了SpringBoot实现跨域的几种常用方式,需要的朋友可以参考下
    2023-09-09
  • Java Stream常用方法合集(超详细)

    Java Stream常用方法合集(超详细)

    Stream API 提供了一种更为简洁高效的的方式来处理集合数据,  可读性较高, 所以本文为大家整理了Java Stream中的常用方法,希望对大家有所帮助
    2023-07-07
  • SpringBoot 快速实现 api 加密的方法

    SpringBoot 快速实现 api 加密的方法

    在项目中,为了保证数据的安全,我们常常会对传递的数据进行加密,常用的加密算法包括对称加密(AES)和非对称加密(RSA),本文给大家介绍SpringBoot 快速实现 api 加密,感兴趣的朋友一起看看吧
    2023-10-10
  • 解决weblogic部署springboot项目步骤及可能会出现的问题

    解决weblogic部署springboot项目步骤及可能会出现的问题

    这篇文章主要介绍了解决weblogic部署springboot项目步骤及可能会出现的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • Maven 配置文件 生命周期 常用命令详解

    Maven 配置文件 生命周期 常用命令详解

    Maven是围绕着构建生命周期的核心概念为原型,整个项目的创建和部署都是围绕着生命周期展开的,一个生命周期由若干个生命周期阶段组成。下面通过本文给大家介绍Maven 配置文件 生命周期 常用命令详解,一起看看吧
    2017-11-11
  • 使用Java第三方实现发送短信功能

    使用Java第三方实现发送短信功能

    这篇文章主要介绍了使用Java第三方实现发送短信功能,在一些开发中,经常需要有给用户发送短信接收验证码的功能,那么在Java中该如何实现呢,今天我们就一起来看一看
    2023-03-03
  • java执行SQL语句实现查询的通用方法详解

    java执行SQL语句实现查询的通用方法详解

    这篇文章主要介绍了java执行SQL语句实现查询的通用方法详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • java之super关键字用法实例解析

    java之super关键字用法实例解析

    这篇文章主要介绍了java之super关键字用法实例解析,较为详细的分析了super关键字的用法及内存分布,需要的朋友可以参考下
    2014-09-09

最新评论