Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Loops 为什么此循环只在DB中保存最后一个em.persist()? for(长i=0;i_Loops_Jpa_Persistence_Persist - Fatal编程技术网

Loops 为什么此循环只在DB中保存最后一个em.persist()? for(长i=0;i

Loops 为什么此循环只在DB中保存最后一个em.persist()? for(长i=0;i,loops,jpa,persistence,persist,Loops,Jpa,Persistence,Persist,你知道我怎么能把不同的“t”对象保存12次吗 提前感谢;) 这两种方法都有效: for (long i = 0; i < 12; i++) { t.setnewerDate(sql); em.persist(t); sql = new java.sql.Date( sql.getTime() + 24*60*60*1000);

你知道我怎么能把不同的“t”对象保存12次吗

提前感谢;)

这两种方法都有效:

                   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();
tx.begin();
tres t=新的tres();
对于(长i=0;i
在for循环中实例化t。否则,您只是覆盖了对象的迭代次数

 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();

            }
for(长i=0;i<12;i++){
WhateverTIs t=新WhateverTIs();
t、 setnewerDate(sql);
em.t;
sql=newjava.sql.Date(sql.getTime()+24*60*60*1000);
System.out.println(sql);
}
em.flush();
em.getTransaction().commit();
em.close();

您的实体只有一个实例
t
,您需要在循环中创建一个新实例…但我更改了每个循环交互中“sql”的值…是的,因此
t
的单个实例每次都会获得一个新日期,但仍然只有一个实例…并且不可能使用同一项“t”通过更改和存储,此项??T是一个实体,当您将其持久化时,它将被管理并记录其状态。在每次迭代中,您都在更改托管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();