Normalerweise, wenn ich will große Ergebnismenge abfragen Mysql ich dies (aus this answer) schreiben:Mysql-Streaming-Ergebnis gesetzt und jOOQ fetchLazy
stmt = conn.createStatement(java.sql.ResultSet.TYPE_FORWARD_ONLY, java.sql.ResultSet.CONCUR_READ_ONLY);
stmt.setFetchSize(Integer.MIN_VALUE);
Jetzt bin ich mit jOOQ 2.0.5 und ich kann‘ t das gleiche Ergebnis erzielen.
Ich habe versucht Aufruf fetchLazy
ohne Glück, lädt es das gesamte Ergebnis im Speicher gesetzt:
Cursor<Record> result = query.fetchLazy(Integer.MIN_VALUE);
Als Abhilfe, die ich die SQL-Abfrage erhalten kann query.getSQL()
und erstellen Sie eine geeignetes Statement
verwenden, um sie auszuführen.
Gibt es eine andere Möglichkeit, Streams mit jOOQ zu erstellen?
es nie selbst, aber ein schnellen Blick In der Dokumentation wird erwähnt, dass Sie für die zugrunde liegende AnweisungFetchSize() festlegen müssen (obwohl dies den Zweck der Überlagerung zu verhindern scheint ...). – Corbin