移行 0.8.8.x to 0.9.0
お約束の注意点
- 古いバージョンの削除
- 古いバージョンのDBFluteランタイム(JAR)が[web-INF/lib]の下などに残らないように
- タスクを実行し忘れないように
- Generateタスクだけでなく、(外だしSQLがある場合は)Sql2Entityタスクも実行
環境上の注意点
S2Daoの代わりにDBFluteランタイム@Java
今回はそれなりの移行が発生するため「0.8.8.x」は安定したバージョンとして残ります。 「プロジェクトで安定を求めている or 移行やってる時間がない」場合はそのまま「0.8.8.x」をご利用下さい。
今回のバージョンより「s2dao.jar」を利用せず、代わりに「dbflute-runtime.jar」を利用するようになります。 「s2dao.jar」は残っていても構いませんが、DBFluteは全く利用しません。(同様の機構が「dbflute-runtime.jar」に含まれている)
移行手順は以下の通り:
- A. JARファイルの準備
- B. 既存allcommonパッケージの削除
- C. 自動生成の実行
- D. 一括インポート文の編成
- E. 微調整
A. JARファイルの準備
Maven2を利用している場合は、pom.xmlのdependenciesに以下を追加します。
<dependency>
<groupId>org.seasar.dbflute</groupId>
<artifactId>dbflute-runtime</artifactId>
<version>0.9.0</version>
</dependency>
Maven2を利用していない場合は、以下のURLからJARファイルをダウンロードしてビルドパスに含めます。
http://maven.seasar.org/maven2/org/seasar/dbflute/dbflute-runtime/0.9.0/dbflute-runtime-0.9.0.jar
既存の「s2dao.jar」は不要となります(DBFlute以外の目的で利用している場合は残して構いません)。
B. 既存allcommonパッケージの削除
以前のバージョンで自動生成済みのallcommonパッケージを一旦全て削除して下さい。 ほとんどのクラスがJARファイルに取り込まれており、今回のバージョンから自動生成されるallcommonのクラスは10クラスほどです。
C. 自動生成の実行
DBFlute-0.9.0を使って自動生成します。こちらは通常通りのオペレーションとなります。{JDBC/Generate/Sql2Entity}
D. 一括インポート文の編成
DBFluteを利用しているプログラム(アプリコード)全てに対してEclipseの「インポート文の編成」を実行して下さい。 右クリックメニューより選択したパッケージ配下のクラス全てに一括で実行が可能です。
DBFluteのクラスに対しては「cbean.cq」パッケージに対して「インポート文の編成」を実行して下さい。 但し、Extendedのクラスに対して独自の処理を入れている場合はそちらも対象となります。
E. 微調整
ほとんどの場合、この時点で移行は完了ですが、通常利用では利用しないDBFluteの内部クラスを利用している場合など まだコンパイルエラーになる可能性があります。これらは一つ一つ臨機に解決するようにして下さい。
注意:クラス名にプレフィックスを付与している場合
DBFluteの「projectPrefix」機能を利用していて、例えば、Entityが「LdEntity」、 ConditionBeanが「LdConditionBean」とかになっている場合です。
この場合はそのまま「一括インポート文の編成」をやってもあまり効果がありません。 以下の置換を別途ツールなどでやってから「一括インポート文の編成」するようにして下さい。 ('Ld'部分はprojectPrefixの値で)
- cbean.cqパッケージにて:LdConditionQuery → ConditionQuery
- cbean.cqパッケージにて:LdSqlClause → SqlClause
- アプリコードに対して:LdLikeSearchOption → LikeSearchOption
- アプリコードに対して:LdListResultBean → ListResultBean
- アプリコードに対して:LdPagingResultBean → PagingResultBean
- アプリコードに対して:LdSubQuery → SubQuery
- アプリコードに対して:LdUnionQuery → UnionQuery
実装上の注意点
特になし