休止状態のセッションのオーバーヘッドを減らしたい (セッションが格納されたオブジェクトを処理するのに時間がかかりすぎるため、パフォーマンスを向上させるため) ステートレス セッションを使用してみます。
statelessSession.createQuery(
"SELECT me, me.mailSourceFile, me.linf " +
"FROM MessageEntry me " +
"WHERE me.mailSourceFile.archive.folder = :folder " +
"ORDER BY me.messageLength DESC")
.setString("folder", folder)
.scroll(ScrollMode.FORWARD_ONLY);
しかし . scroll(...) は与えます
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at com.mysql.jdbc.Buffer.<init>(Buffer.java:59)
at com.mysql.jdbc.MysqlIO.nextRow(MysqlIO.java:1477)
at com.mysql.jdbc.MysqlIO.readSingleRowSet(MysqlIO.java:2936)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:477)
...
私のコードには memleaks がありません。Session と .iterator() で正しく動作します。クラッシュを回避するためにステートレス セッションを他にどのように使用すればよいですか?
ありがとう。