sql >> Databáze >  >> RDS >> PostgreSQL

hibernate vložit dávku s rozděleným postgresql

Možná budete chtít zkusit použít vlastní Batcher nastavením vlastnosti hibernate.jdbc.factory_class. Ujistěte se, že hibernace nebude kontrolovat počet aktualizací dávkových operací, které by mohly vyřešit váš problém, můžete toho dosáhnout tím, že váš vlastní Batcher rozšíří třídu BatchingBatcher a poté přepíšete metodu doExecuteBatch(...) tak, aby vypadala takto:

    @Override
    protected void doExecuteBatch(PreparedStatement ps) throws SQLException, HibernateException {
        if ( batchSize == 0 ) {
            log.debug( "no batched statements to execute" );
        }
        else {
            if ( log.isDebugEnabled() ) {
                log.debug( "Executing batch size: " + batchSize );
            }

            try {
//              checkRowCounts( ps.executeBatch(), ps );
                ps.executeBatch();
            }
            catch (RuntimeException re) {
                log.error( "Exception executing batch: ", re );
                throw re;
            }
            finally {
                batchSize = 0;
            }

        }

    }

Všimněte si, že nová metoda nekontroluje výsledky provádění připravených příkazů. Mějte na paměti, že provedení této změny může nějakým neočekávaným způsobem ovlivnit hibernaci (nebo možná ne).



  1. Nesprávné řazení PostgreSQL

  2. Spring JDBC pomocí souboru application.properties

  3. DATEDIFF_BIG() Příklady v SQL Server

  4. CHYBA:funkce ve výrazu indexu musí být v Postgresu označeny IMMUTABLE