使用jpa的时候进行数据的插入怎么弄
1、JPA和HIBERNATE均属于ORM框架,两者在使用上也很相似,尤其是原理上。除了这两种操作DB的工具外,我们还可能使用到Serialization 、JDBC、ODB 、EJB2 、JDO等。
2、此处仅简单通过JPA插入一对关系数据进行了解JPA的使用。对于一对多关系,从Object角度将,关系可能维护在多的一方,也可能维护在一的一方;从DBTable的角度将,则是多的一方维护着关系。
3、JPA是java规范,使用JPA离不开下面几个常用类。javax.persistence.Persistence;javax.persistence.EntityManagerFactory;javax.persistence.EntityManager;javax.persistence.Query;
4、假设任务信息TItem和历史信息THist是一对多关系。假设一种场景需要存储多条任务信息,而且每种任务信息会携带多个相同的历史信息,此种情景可以简化理解为多次存储一对多关系(简单对比一下此种场景的如下说法:每种任务信息携带多个历史信息、每种任务信息携带多个不同的历史信息)。
5、EntityManagerFactory emf = Persistence.createEntityManagerFact泠贾高框ory("your_unit");EntityManager emMy = emf.createEntityManager();try{emMy.getTransaction().begin();for(String docId:docIdList){/** * 设置任务 */tItem = new TItem();//设置IDtItem.setDocId(docId);
6、tItem.setDispDate(new Timestamp(System.currentTimeMillis()));//保存一emMy.persist(tItem);//创建保存履历表,同时关联任务for(String disDTO: FormInfoList){/** * 设置履历表各项信息 */tHist = new THist();……tHist.setTItem(tItem);//保存多emMy.persist(tDispHist);}//提交emMy.getTransaction().commit();}catch(Exception e){e.printStackTrace();em.getTransaction().rollback();}finally{if(emMy.isOpen()){emMy.close();}