【hibernate实例】双向多对一客户与订单增加查找修改
来源:互联网 发布:linux下测试网速 编辑:程序博客网 时间:2024/06/11 14:29
新建持久化类
Order.java
- package www.hbsi.net.one2manyboth;
- public class Order {
- private int id;
- private String no;
- private Customer customer;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getNo() {
- return no;
- }
- public void setNo(String no) {
- this.no = no;
- }
- public Customer getCustomer() {
- return customer;
- }
- public void setCustomer(Customer customer) {
- this.customer = customer;
- }
- }
Customer.java
- package www.hbsi.net.one2manyboth;
- import java.util.Set;
- public class Customer {
- private int id;
- private String name;
- private Set<Order> orders;
- public int getId() {
- return id;
- }
- public void setId(int 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.hbm.xml
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping package="www.hbsi.net.one2manyboth">
- <class name="Order" table="orders">
- <id name="id" column="id">
- <generator class="native"/>
- </id>
- <property name="no" column="no" type="string"/>
- <many-to-one name="customer" column="customer_id" cascade="save-update"/>
- </class>
- </hibernate-mapping>
Customer.hbm.xml
- <?xml version="1.0"?>
- <!DOCTYPE hibernate-mapping PUBLIC
- "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping package="www.hbsi.net.one2manyboth">
- <class name="Customer" table="customer">
- <id name="id" column="id">
- <generator class="native"/>
- </id>
- <property name="name" column="name" type="string"/>
- <set name="orders" inverse="true" cascade="save-update">
- <key column="customer_id"/>
- <one-to-many class="Order"/>
- </set>
- </class>
- </hibernate-mapping>
更改hibernate配置文件
hibernate.cfg.xml
创建测试类
App.java
- package www.hbsi.net.one2manyboth;
- import java.util.Set;
- import org.hibernate.Session;
- import org.junit.Test;
- import www.hbsi.net.util.HibernateSessionFactory;
- public class App {
- @Test
- public void add(){
- Session session = HibernateSessionFactory.getSession();
- session.beginTransaction();
- Customer customer = new Customer();
- customer.setName("客户2");
- Order order = new Order();
- order.setNo("1234");
- order.setCustomer(customer);
- Order order1 = new Order();
- order1.setNo("213");
- order1.setCustomer(customer);
- //order维护保存order
- session.save(order);
- session.save(order1);
- session.getTransaction().commit();
- HibernateSessionFactory.closeSession();
- }
- //查询1号客户的所有订单
- @Test
- public void find(){
- Session session = HibernateSessionFactory.getSession();
- session.beginTransaction();
- Customer cust = (Customer) session.get(Customer.class,1);
- Set<Order> orders = cust.getOrders();
- for(Order o:orders){
- System.out.println(o.getNo());
- }
- session.getTransaction().commit();
- HibernateSessionFactory.closeSession();
- }
- //改变订单的所有者 將4号订单给1号客户
- @Test
- public void change(){
- Session session = HibernateSessionFactory.getSession();
- session.beginTransaction();
- //查找4号订单
- Order o4 = (Order) session.get(Order.class,4);
- //查找1号客户
- Customer c1 = (Customer) session.get(Customer.class,1);
- //建立关联关系
- o4.setCustomer(c1);
- c1.getOrders().add(o4);
- session.getTransaction().commit();
- HibernateSessionFactory.closeSession();
- }
- }
增加:
查找:
修改:
- 【hibernate实例】双向多对一客户与订单增加查找修改
- 【hibernate实例】赵雅智_双向多对一客户与订单增加查找修改
- 【hibernate实例】单项多对一增加查找
- 【hibernate实例】赵雅智_单项多对一增加查找
- 【hibernate】一对多(客户与订单双向关联)遇到的异常
- Hibernate中的多对一单向与双向关联
- hibernate的一对多双向关联映射----客户和订单关系
- 【hibernate实例】项一对多增加查找
- Hibernate双向一对多(多对一)
- 五、hibernate多对一(双向关联)
- Hibernate Annotation 多对一 双向
- Hibernate双向多对一关系
- hibernate双向多对一映射关系
- hibernate ORM映射:双向多对一
- Hibernate双向多对一关系
- Hibernate学习笔记----双向多对一
- hibernate 多对一的双向理解
- Hibernate双向多对一映射
- 【servlet】jdbc开发
- 【servlet】会话_Session
- 【servlet】HTTP协议
- Secure Network (ssh端口映射)-----图详细可以使用
- 【servlet】用Tomcat构建WEB站点
- 【hibernate实例】双向多对一客户与订单增加查找修改
- 【hibernate实例】双项一对多(多对一)增加删除
- 【hibernate实例】项一对多增加查找
- HashMap源码分析
- 单臂路由
- 指针第一次总结
- VC界面绘制双缓存
- 深入浅出 Cocoa 系列
- 遗传算法的简单实现