PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

partia hibernacji wstawiania z partycjami postgresql

Możesz spróbować użyć niestandardowego programu Batcher, ustawiając właściwość hibernate.jdbc.factory_class. Upewnienie się, że hibernacja nie sprawdzi liczby aktualizacji operacji wsadowych, może rozwiązać problem, możesz to osiągnąć, tworząc niestandardowy Batcher rozszerzający klasę BatchingBatcher, a następnie nadpisując metodę doExecuteBatch(...) tak, aby wyglądała następująco:

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

        }

    }

Zwróć uwagę, że nowa metoda nie sprawdza wyników wykonania przygotowanych instrukcji. Pamiętaj, że wprowadzenie tej zmiany może w jakiś nieoczekiwany sposób wpłynąć na hibernację (lub może nie).



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Zmień typ pola varchar na integer:nie można automatycznie rzutować na typ integer

  2. Zduplikowany klucz postgresql narusza ograniczenie unikalności

  3. Postgres:zaktualizuj sekwencję klawiszy podstawowych dla wszystkich tabel

  4. Odejmij dwa rekordy z tej samej kolumny w tabeli

  5. PostgreSQL wybiera najnowszy wpis dla danego identyfikatora