sql >> データベース >  >> RDS >> PostgreSQL

パーティション化されたpostgresqlを使用したHibernate挿入バッチ

    hibernate.jdbc.factory_classプロパティを設定して、カスタムバッチャーを使用してみることをお勧めします。 hibernateがバッチ操作の更新カウントをチェックしないようにすることで問題が解決する可能性があります。カスタムBatcherでクラスBatchingBatcherを拡張し、メソッドdoExecuteBatch(...)をオーバーライドして次のようにすることで解決できます。

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

    新しいメソッドは、プリペアドステートメントの実行結果をチェックしないことに注意してください。この変更を行うと、予期しない方法で休止状態に影響を与える可能性があることに注意してください(またはそうでない場合もあります)。



    1. MySQLエラー#1054-「フィールドリスト」の不明な列

    2. 式付きの文字列を10進数に変換します

    3. PostgreSQLマルチクラウドクラスターの展開

    4. MySQLがデータ送信状態にあるとはどういう意味ですか?