[JAVA] So legen Sie eine Standardabrufgröße fest, wenn jOOQ beim Abrufen einer großen Ergebnismenge einen OOM-Fehler erhält

Wenn jOOQ versucht, eine große Ergebnismenge in einem Stream abzurufen, Sie jedoch "OutOfMemoryError" erhalten, ist die Abrufgröße wahrscheinlich unendlich (im Fall des PostgreSQL-Treibers). Lassen Sie uns die XML-Datei von jOOQ als Standardeinstellungswert für die Abrufgröße von jOOQ direkt unter dem Stammverzeichnis des Klassenpfads verwenden.

(Ausführliche Informationen zur Verarbeitung finden Sie unter org.jooq.conf.SettingsTools.)

src/main/resources/jooq-settings.xml


<?xml version="1.0" ?>

<settings
        xmlns="http://www.jooq.org/xsd/jooq-runtime-3.11.2.xsd"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

    <!--Bitte geben Sie eine geeignete Größe an.-->
    <fetchSize>1000</fetchSize>

</settings>

Darüber hinaus ist die folgende Abhängigkeit separat erforderlich, um das obige XML gemäß den obigen Einstellungen in JavaBeans zu entfernen. Fügen wir es hinzu.

build.gradle


    //Je nach Fall kann die Versionsspezifikation unterschiedlich sein. Suchen Sie daher nach einem geeigneten Wert.

    runtime('javax.activation:activation:1.1.1')
    runtime("com.sun.xml.bind:jaxb-impl:...")
    runtime("com.sun.xml.bind:jaxb-core:...")

Gleiches gilt für Spring Boot

Selbst wenn Sie in SpringBoot spring-boot-Starter-jooq verwenden, scheint es keine Möglichkeit zu geben, die gleichen Einstellungen wie oben in application.properties usw. zu implementieren. Lassen Sie uns also aufgeben und die XML-Datei ablegen.

Andere Methoden (für PostgreSQL)

Ich ließ mich von einem Kollegen unterrichten.

Es scheint, dass Sie die folgende Zeichenfolge zu [JDBC-URL von PostgreSQL] hinzufügen sollten (https://jdbc.postgresql.org/documentation/head/connect.html).

&defaultRowFetchSize=1000

Recommended Posts

So legen Sie eine Standardabrufgröße fest, wenn jOOQ beim Abrufen einer großen Ergebnismenge einen OOM-Fehler erhält
Beim Ausführen einer Funktion in PostgreSQL mit dem Parameter OUT von MyBatis auf CURSOR ist ein Fehler aufgetreten.
So stellen Sie die Chronik ein, wenn sich die Zeit in CentOS7 verschiebt
[Java] Das Hinzufügen eines Elements zur Sammlung führt zu einem Kompilierungsfehler
So geben Sie den Wert aus, wenn sich ein Array im Array befindet
[jOOQ] Wie in der WHERE / AND / OR-Klausel WANN FALLEN
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
So stellen Sie das Bild mithilfe der Symbolschriftart (Symbole) links / rechts von der Schaltfläche auf zeichnbar ein
Anzeigen von Fehlermeldungen und Erfolgsmeldungen bei der Registrierung als Benutzer
Ich möchte bei der Registrierung in der Datenbank eine Fehlermeldung anzeigen
So verweisen Sie auf eine Spalte, wenn Sie die Spaltennamensmethode in ActiveRecord überschreiben
Bei der Registrierung eines neuen Benutzers wurde ein Fehler namens ActiveRecord :: NotNullViolation und der Umgang damit angezeigt.
Was tun, wenn die Meldung "Ein Server läuft bereits" angezeigt wird. Fehler beim Versuch, den Rails-Server zu starten
[Hinweis] [Anfänger] Schreiben, wenn der Wert eines Array-Elements in einem sich wiederholenden Satz von Ruby geändert wird
Bei der Einführung von JOOQ in Spring Boot wurde eine Geschichte behandelt, die behandelt wurde, weil bei Liquidbase ein Fehler aufgetreten ist