为什么这个循环只保存在DB中的最后一个em.persist()?

时间:2014-05-28 21:41:24

标签: loops jpa persistence persist

                   for (long i = 0; i < 12; i++) {
                    t.setnewerDate(sql);  
                    em.persist(t);
                    sql = new java.sql.Date( sql.getTime() + 24*60*60*1000);
                    System.out.println(sql); 
                   }
                em.flush();
                em.getTransaction().commit();
                em.close();

我知道如何保存不同的“t”物体12次?

提前致谢;)

这可行:

 tx.begin();
                tres t = new tres();
                for (long i = 0; i < diffDays+1; i++) {
                t.setnwerDate(sql);  
                em.persist(t);
                sql = new java.sql.Date( sql.getTime() + 24*60*60*1000);
                System.out.println(sql);
                em.flush();
                tx.commit();
                tx.begin();

            }

1 个答案:

答案 0 :(得分:0)

在for循环中实例化t。否则,您只是覆盖了对象的迭代量。

for (long i = 0; i < 12; i++) {

             WhateverTIs t = new WhateverTIs();

            t.setnewerDate(sql);  
            em.persist(t);
            sql = new java.sql.Date( sql.getTime() + 24*60*60*1000);
            System.out.println(sql); 
                   }

                em.flush();
                em.getTransaction().commit();
                em.close();