我有一个场景,我想将数百条记录插入数据库表,我想将它们作为块插入(例如10条记录),我只需要实体框架来回滚失败的记录和将失败的记录退还给我?
我的第一个问题我如何实现这一目标?
我的第二个问题是,无论上面提到的场景如何,都有一个很好的插入大量记录的做法?
答案 0 :(得分:0)
StatelessSession session = factory.openStatelessSession();
Transaction tx = session.beginTransaction();
for(int i = 0; i < resultItems.size(); i++) {
try
{
Customer cust = new Customer(resultItems.get(i));
Long id = session.save(cust); // get the generated id
}
catch(Exception e)
{
//track your exceptional customer here
System.out.println("customer not added ="+resultItems.get(i).custorName)
}
if(i % BATCH_SIZE == 0) {
session.flush();
session.clear();
}
}
tx.commit();
session.close();