1

今、私はhibernateでjpaを使用しています.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() が完了したときに、hibernate を使用して 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 に答える