sql >> Databasteknik >  >> RDS >> PostgreSQL

hibernate insert batch med partitionerad postgresql

Du kanske vill prova att använda en anpassad Batcher genom att ställa in egenskapen hibernate.jdbc.factory_class. Att se till att viloläge inte kontrollerar uppdateringsantalet för batchoperationer kan lösa ditt problem, du kan uppnå det genom att göra din anpassade Batcher utöka klassen BatchingBatcher och sedan åsidosätta metoden doExecuteBatch(...) så att den ser ut så här:

    @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;
            }

        }

    }

Observera att den nya metoden inte kontrollerar resultaten av exekvering av de förberedda satserna. Tänk på att den här ändringen kan påverka viloläge på något oväntat sätt (eller kanske inte).



  1. Fråga för att lista antalet poster i varje tabell i en databas

  2. Hur kan jag bygga en Android-app med lokal MySQL-databas?

  3. Xampp MySQL startar inte - Försöker starta MySQL-tjänsten...

  4. Hur man returnerar ett värde från en funktion om inget värde hittas