首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

JPA之OneToMany跟ManyToOne处理

2012-10-29 
JPA之OneToMany和ManyToOne处理前面介绍和总结了JPA的入门知识,也就是搭建环境和简单的使用了JPA的一个实

JPA之OneToMany和ManyToOne处理
  前面介绍和总结了JPA的入门知识,也就是搭建环境和简单的使用了JPA的一个实例。现在再来总结下一些常见的关系(一对多和多对一的关系)。
  在学习这些的时候,我们不得单单就学习他本身来学习,我们应该联系相关的一些知识来进行学习。比如Hibernate等
-------------------------------
  例如我们用一个例子来开启JPA的一对多和多对一的学习。

  比如你去当当网上买书籍,当当网就给你一个订单。
  通过上面的业务活动描述你可以分析得出:一个订单可以包含一个或多个订单项.那么我们将将订单和订单项设计关系为(1:N)一对多的关系(排除0)。得出关系我们就使用JPA来实现这个关系(关于建立JPA和基本的配置我就不再说了,如果不明白请看JPA入门篇)。

首先建立订单实体类

import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.Persistence;import org.junit.BeforeClass;import org.junit.Test;import cn.itcast.bean.Order;import cn.itcast.bean.OrderItem;public class OneToManyTest {@BeforeClasspublic static void setUpBeforeClass() throws Exception {}@Test public void addOrder(){ EntityManagerFactory factory = Persistence.createEntityManagerFactory("test"); EntityManager em = factory.createEntityManager(); em.getTransaction().begin(); // start transaction                    Order order = new Order();  order.setAmount(34f);  order.setOrderid("00001");                                      //order中包含的OrderItem项OrderItem1,OrderItem2  OrderItem orderItem1 = new OrderItem(); orderItem1.setProductName("书"); orderItem1.setSellPrice(22f); order.addOrderItem(orderItem1); //add orderitem in order  OrderItem orderItem2 = new OrderItem(); orderItem2.setProductName("篮球"); orderItem2.setSellPrice(100f); order.addOrderItem(orderItem2);  em.persist(order); //persist order object em.getTransaction().commit(); //commit transaction em.close(); factory.close();}}



总结:OneToMany或者其他的关系,在建立联系的时候,要注意理解关系维护端和关系被维护端
 

热点排行