【问题标题】:jpa bulk insert not inserting properlyjpa批量插入未正确插入
【发布时间】:2013-06-28 12:13:10
【问题描述】:

我正在使用 jpa 项目开发 jsf,现在我遇到批量插入问题,因为列表大小超过 6000,这意味着它应该在表中插入超过 6000 条记录,但它只插入 215 条记录。

我的代码在这里

    factory = Persistence.createEntityManagerFactory(PERSISTENCE_UNIT_NAME);
            EntityManager em = factory.createEntityManager();
            try {
                em.getTransaction().begin();
                for (int i = 0; i < sgmlList.size(); i++) {
                    // Getting the object from the list by using loop
                    SGML sgml = sgmlList.get(i);
                    em.persist(sgml);

                }
em.getTransaction().commit();
                FacesContext.getCurrentInstance().addMessage(null,
                        new FacesMessage("SGML imported successfully"));
            } catch (Exception ex) {

            } finally {
                if (em != null) {
                    em.close();
                }
            }

我的持久化 xml 是

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_2_0.xsd">
    <persistence-unit name="Cation" transaction-type="RESOURCE_LOCAL">
        <class>com.cation.bean.Users</class>
        <class>com.cation.bean.BatchInfo</class>
        <class>com.cation.bean.SGML</class>
        <properties>
            <property name="javax.persistence.jdbc.url" value="jdbc:mysql://192.168.1.4:3306/cation"/>
            <property name="javax.persistence.jdbc.user" value="rix"/>
            <property name="javax.persistence.jdbc.password" value="rix123"/>
            <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver"/>
        </properties>
    </persistence-unit>
</persistence>

我在将对象持久保存在列表中时也尝试过此代码

if (i % 200 == 0) {
                    em.flush();
                    em.clear();
                }

但同样的问题也会出现。谁能帮忙解决一下这个问题。

【问题讨论】:

  • 谁能帮我解决这个问题

标签: jsf jpa persistence bulkinsert


【解决方案1】:

你得到什么错误?您正在处理所有错误并忽略它们,删除它以捕获错误。

【讨论】:

    猜你喜欢
    • 2013-01-18
    • 2011-02-15
    • 2021-06-05
    • 2018-05-17
    • 1970-01-01
    • 2010-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多