1.0.1をリリースしました。このバージョンでは、Fess で利用しているのですが、CRUDページの生成において、利用するテンプレートを差し替え可能になっています。あとは、DBFLUTE-996の修正な感じです。Mavenを利用している方はどうぞ、ご利用ください。
カテゴリー: DBFlute
DBFlute Maven Plugin 1.0.0 をリリースしました
今まで、maven-dbflute-plugin という名前だったものを 1.0.0 に合わせて、Maven の命名ルールに従って、dbflute-maven-plugin に変更しました。機能的には manage タスクが使えるようになったことかと思います。サイトもここになりますが、SAStruts Archetypeを使って CRUD サイトの作り方をまとめてあります(これを執筆時にはサイトがまだ反映されていないので、そのページがなければしばらくしてから見ていただければ良いかと)。Fess はその CRUD 機能を使って管理ページを生成して、それを元に画面を作ることで手間を省いたりしてます。個人的には、このCRUD機能はもっと拡張したいな、とは思っているものの手が回っていない感じです。そんな感じで、そこを拡張していただける方がいると嬉しいな、と思う今日このごろです。
MySQLでOOMが発生する
S2RobotでMySQLを使って大量の件数の処理をするときにDBFluteでselectCursorを使っていたのだけど、Java heap spaceで怒られた…。コード的には以下のような感じ。
public void iterate(final String sessionId,
final AccessResultCallback accessResultCallback) {
final AccessResultCB cb = new AccessResultCB();
cb.setupSelect_AccessResultDataAsOne();
cb.query().setSessionId_Equal(sessionId);
cb.query().addOrderBy_CreateTime_Asc();
accessResultBhv
.selectCursor(
cb,
new EntityRowHandler
@Override
public void handle(
final org.seasar.robot.db.exentity.AccessResult entity) {
accessResultCallback.iterate(entity);
}
});
}
MySQLはデフォルトでResultSetに全件を読み出すみたい。というわけで、回避するためには
cb.configure(new StatementConfig().fetchSize(Integer.MIN_VALUE));
を条件に追加設定すれば良い。
maven-dbflute-plugin 0.3.0
リリースしました。今回は、Windows環境でゴール実行時に入力待ちになる問題と CRUD 生成まわりを強化しました。CRUD 生成は Fess で適用していますが、個人的には SAStruts を利用していると便利だと思うので、Seasarカンファレンスとかで話したいな~とは思っている感じですが1コマ話すネタでもないところがちょっと問題。そんな感じで、ベースの部分は入力待ち問題もなくなり気になることはないけど、CRUD 生成まわり必要に応じて強化していくかも。
h2のバージョン
DBFluteに含まれているh2のライブラリのバージョンは 1.1 系だけど、h2databaseで公開されているバージョンは 1.2 系。というわけで、1.2 系で作った DB は jdbc.bat とか実行しても普通に通らなかった…。というわけで、mydbflute/dbflute-0.9.5.1/lib/forExecute/に置いてある h2 の jar を置き換えればよいみたい。