Jpa(休眠)批量刷新

时间:2014-02-05 11:12:49

标签: hibernate postgresql jpa jboss

我正在使用jpa(休眠)而我正在尝试进行多次插入然后我将使用批处理但我遇到以下问题: Hibernate只在进程的最后进行所有插入。 我正在使用jpa(hibernate 4),ejb 3.1,jboss eap 6.1,JTA和Postgresql

<persistence-unit name="VSDialerUnit" transaction-type="JTA">
    <provider>org.hibernate.ejb.HibernatePersistence</provider>
    <jta-data-source>java:jboss/datasources/VSDialer</jta-data-source>
    <properties>
        <property name="hibernate.dialect" value="org.hibernate.dialect.PostgreSQLDialect" />
        <property name="hibernate.temp.use_jdbc_metadata_defaults" value="false"/>
        <property name="hibernate.show_sql" value="true"/>
        <property name="hibernate.format_sql" value="true"/>
        <property name="hibernate.jdbc.batch_size" value="50"/>
        <property name="hibernate.jdbc.fetch_size" value="50"/>
    </properties>
</persistence-unit>

public void inserirBatch(T objeto, Integer quantidade){
    entityManager.persist(objeto);
    if(quantidade % 50 == 0){
        limparEntityManager();
    }
}

public void limparEntityManager(){
    entityManager.flush();
    entityManager.clear();
}

0 个答案:

没有答案