1

现在我将 jpa 与 hibernate 一起使用,当我完成 getEntityManager.persist(objects) 后,我将要求用户确认,例如使用用户界面继续和回滚

private List<TempCustomers> tempCustomer =new ArrayList<TempCustomers>();

 @Begin(join = true)
    public String migrateData() {

    log.info("Mobee Migrate Customer Size  :"+doTempCustomers.size());




            for(DoTempCustomers tempCustomers:doTempCustomers){
            try {

                TempCustomers temp=new TempCustomers();
                BeanUtils.copyProperties(temp, tempCustomers);


                tempCustomer.add(temp);
                getEntityManager().persist(temp);

            }catch (Exception e) {
                // TODO: handle exception
                return "null";
            }

             }
            log.info("Size........."+tempCustomer.size());
            return "null";
    }

@Begin(join = true)
    public String updatedData(){
         log.info("Size of Customers :"+tempCustomer.size());
         log.info("Decision ..."+decision);

        try{    
       if(decision.equals("Continue")){
        for(TempCustomers tempCust:tempCustomer){

            TempCustomers temp=new TempCustomers();
            BeanUtils.copyProperties(temp, tempCust);   

            log.info("updated Sucessfully");

           getEntityManager().getTransaction().commit();

       }}else{
           getEntityManager().getTransaction().rollback();

        }
        }
        catch(Exception e){

        }
}

当 getEntityManager().persist() 完成时,请帮助我如何使用休眠在 jpa 中继续和回滚。

4

1 回答 1

2

使用 JPA 提交:

entityManager.getTransaction().commit();

使用 JPA 回滚:

entityManager.getTransaction().rollback();

在您调用后调用这些方法中的任何一个以持久执行所需的操作。在您的情况下entityManager,将替换为检索 entityManager 的调用,getEntityManager()

参考: http ://www.objectdb.com/java/jpa/persistence/store

于 2012-10-29T16:38:03.810 回答