在JPA eclipselink中批量插入

时间:2013-06-24 07:21:38

标签: database jpa bulkinsert

我需要在JPA中使用大量插入数据库的列表,其中我有大约35个大小的对象列表,我想在JPA中插入任何选项吗?

我已尝试对批量插入进行解码

EntityManagerFactory factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
EntityManager em = factory.createEntityManager();

try {
        em.getTransaction().begin();

        for (int i = 0; i < batchList.size(); i++) {
            // Getting the object from the list by using loop
            BatchInfo batchInfo = batchList.get(i);
            em.persist(batchInfo);
        }

        em.getTransaction().commit();
}
catch(Exception e){}

但我得到这样的例外,

  

在同步过程中,通过关系找到了一个新对象   没有标记为级联PERSIST:com.cation.bean.Users@15655c9。

1 个答案:

答案 0 :(得分:0)

该错误表示您的某个对象正在引用另一个尚未保留的新对象。

将关系标记为级联持久,或先保留相关对象。

您还可以设置持久性单元属性“eclipselink.persistence-context.commit-without-persist-rules”=“true”,它将始终在需要时级联保留。