Hibernate Jpa 批量插入不工作
Hibernate Jpa batch insert not working
我正在使用 hibernate jpa 执行批量更新。
它没有给出任何错误或异常,但每次给出时事务都会回滚。
2015-04-21 16:30:33,548 ERROR [org.jboss.as.ejb3] (Thread-344 (HornetQ-client-global-threads-462057890)) javax.ejb.EJBTransactionRolledbackException: no transaction is in progress
这是我的批量更新码
getEm().getTransaction().begin();
System.out.println("transaction started--------------");
try{
for(Receipt ReceiptEntity : arrReceiptEntity){
getEm().persist(ReceiptEntity);
}
getEm().getTransaction().commit();
System.out.println("commited");
}catch(Exception exception){
System.out.println("error----------------------------------------------------------------------");
if(getEm().getTransaction().isActive())
getEm().getTransaction().rollback();
LOG.error(exception);
}finally
{
getEm().flush();
getEm().clear();
getEm().close();
}
我正在使用 Postgres 服务器 9.4.1
请帮我弄清楚我做错了什么。
我检查了其他类似的帖子,但没有任何帮助。
更新:
我得到了解决方案:
问题是我正在刷新已经刷新的 transaction.And 因此它没有给我任何正在进行的交易错误以及我发布的错误 above.So 我只是删除了 `getEm().flush();和 getEm().clear();从 finally 块开始工作:)
我得到了解决方案:问题是我正在冲洗已经冲洗过的 transaction.And 因此它没有给我任何正在进行的交易错误以及我发布的错误 above.So 我刚刚删除了 getEm().flush(); and getEm().clear();
从 finally 块开始工作:)
希望对其他人有所帮助..
我正在使用 hibernate jpa 执行批量更新。
它没有给出任何错误或异常,但每次给出时事务都会回滚。
2015-04-21 16:30:33,548 ERROR [org.jboss.as.ejb3] (Thread-344 (HornetQ-client-global-threads-462057890)) javax.ejb.EJBTransactionRolledbackException: no transaction is in progress
这是我的批量更新码
getEm().getTransaction().begin();
System.out.println("transaction started--------------");
try{
for(Receipt ReceiptEntity : arrReceiptEntity){
getEm().persist(ReceiptEntity);
}
getEm().getTransaction().commit();
System.out.println("commited");
}catch(Exception exception){
System.out.println("error----------------------------------------------------------------------");
if(getEm().getTransaction().isActive())
getEm().getTransaction().rollback();
LOG.error(exception);
}finally
{
getEm().flush();
getEm().clear();
getEm().close();
}
我正在使用 Postgres 服务器 9.4.1 请帮我弄清楚我做错了什么。 我检查了其他类似的帖子,但没有任何帮助。
更新: 我得到了解决方案: 问题是我正在刷新已经刷新的 transaction.And 因此它没有给我任何正在进行的交易错误以及我发布的错误 above.So 我只是删除了 `getEm().flush();和 getEm().clear();从 finally 块开始工作:)
我得到了解决方案:问题是我正在冲洗已经冲洗过的 transaction.And 因此它没有给我任何正在进行的交易错误以及我发布的错误 above.So 我刚刚删除了 getEm().flush(); and getEm().clear();
从 finally 块开始工作:)
希望对其他人有所帮助..