Hibernate一对多关联映射
来源:互联网 发布:淘宝达人的账号简介 编辑:程序博客网 时间:2024/05/19 13:09
Customer类
public class Customer { private Integer id; private String name; //一个客户对应多个订单 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; } }
Order类
public class Order { private Integer id; private String address; private double price; //每个订单对应一个客户 private Customer customer; public Integer getId() { return id; } public void setId(Integer id) { this.id = id; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public Customer getCustomer() { return customer; } public void setCustomer(Customer customer) { this.customer = customer; }}
Customer.hbm.xml映射文件
<hibernate-mapping> <class name="hibernate.Customer" table="customer"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="name" type="java.lang.String"> <column name="name" /> </property> <!-- 订单表中的外键cid 集--> <set name="orders" table="Order"> <key> <column name="cid" /> </key> <one-to-many class="hibernate.Order" /> </set> </class></hibernate-mapping>
Order.hbm.xml映射文件
<hibernate-mapping> <class name="hibernate.Order" table="Order"> <id name="id" type="java.lang.Integer"> <column name="id" /> <generator class="native" /> </id> <property name="address" type="java.lang.String"> <column name="address" /> </property> <property name="price" type="double"> <column name="price" /> </property> <!-- 订单类对应得客户 --> <many-to-one name="customer" class="hibernate.Customer"> <column name="cid" /> </many-to-one> </class></hibernate-mapping>
Test测试类
public class Test { public static void main(String[] args) { new Test().test(); } public void test(){ Session session=HibernateUtils.getSession(); session.beginTransaction(); //创建客户 Customer c=new Customer(); c.setName("张三"); //创建两个订单 Order o1=new Order(); o1.setAddress("北京"); o1.setPrice(500d); Order o2=new Order(); o2.setAddress("上海"); o2.setPrice(800d); //订单属于某个客户 o1.setCustomer(c); o2.setCustomer(c); //描述客户有多个订单 c.getOrders().add(o1); c.getOrders().add(o2); //先存客户再存订单 session.save(c); session.save(o1); session.save(o2); session.getTransaction().commit(); session.close(); }}
执行的sql语句
Hibernate: insert into customer (name) values (?)Hibernate: insert into order1 (address, price, cid) values (?, ?, ?)Hibernate: insert into order1 (address, price, cid) values (?, ?, ?)Hibernate: update order1 set cid=? where id=?Hibernate: update order1 set cid=? where id=?
注:Order表不能写成ORDER或order
阅读全文
0 0
- Hibernate一对多关联映射
- hibernate---->一对多关联映射
- Hibernate一对多关联映射
- hibernate关联映射(一对多)
- hibernate---一对多关联映射
- 【Hibernate】一对多关联映射
- 【Hibernate】一对多关联映射
- Hibernate关联映射--一对多
- Hibernate一对多关联映射
- Hibernate关联映射--一对多映射
- Hibernate一对多单向关联映射
- Hibernate一对多关联双向映射
- Hibernate映射一对多单向关联(之一)
- Hibernate一对多关联映射—单向
- Hibernate 映射一对多关联关系
- hibernate一对多关联映射—单向
- hibernate一对多关系映射(自身关联)
- hibernate 一对多 关系关联映射
- 用pycharm安装scrapy框架
- hive创建自定义函数
- perl 正则表达式使用技巧
- Redis 客户端开发包-学习-入门
- 学会图文混排页面2(实例)
- Hibernate一对多关联映射
- Android IntentService源码分析
- js中的|| 与 &&
- Leetcode 6. ZigZag Conversion
- AdPredictor引发的一系列故事
- DSL的诞生 | 复杂sql转成Elasticsearch DSL深入详解
- 指针和数组
- 陈越《数据结构》第七讲 图(中)二
- Eclipse Java注释模板设置详解