本人小菜用seam开发,在程序中要保存大量的数据,大概要生成10000条记录,比如要保存到mydata表(id, user, pwd)最后保存完成或失败后都会生成一个日志,即保存一条记录,比如是mylog表(id, isOk) 程序中 大概如下:
  @In
  EntityManager entityManager;
  for(i=0;i<10000;i++){
      Mydata data = new Mydata();
      data.setId("086020"+i);
      data.setUser("tom");
      data.setPwd("123");
      entityManager.persist(data);
      }
   
  Mylog log = new Mylog();
  log.setId("123456");
  log.setIsOk("ok");
  entityManager.persist(log);
  entityManager.flush():以下代码只是为简单描述,在存入数据库除外的代码保证没错,我的问题是如何针对这种批量增加数据库得出一种最合适的保存方式不甚感激
另补充一下:在新增大概5000记录的时候未报错,但在新增10000条记录的时候报以下错误:09:03:34,171 WARN  [JDBCExceptionReporter] SQL Error: 0, SQLState: null
09:03:34,171 ERROR [JDBCExceptionReporter] Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57ff93:5b4:4ab03093:cc status: ActionStatus.ABORTED >; - nested throwable: (javax.resource.ResourceException: Transaction is not active: tx=TransactionImple < ac, BasicAction: -3f57ff93:5b4:4ab03093:cc status: ActionStatus.ABORTED >)
09:03:34,171 FATAL [application] /finance/AnaCpxstj.xhtml @775,27 action="#{anaAction.addReports_month}": javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connectionCaused by: javax.persistence.PersistenceException: org.hibernate.exception.GenericJDBCException: Cannot open connection
at org.hibernate.ejb.AbstractEntityManagerImpl.throwPersistenceException(AbstractEntityManagerImpl.java:629)
at org.hibernate.ejb.AbstractEntityManagerImpl.persist(AbstractEntityManagerImpl.java:218)
at org.jboss.seam.persistence.EntityManagerProxy.persist(EntityManagerProxy.java:137)