Home > アーカイブ > 2009-03-11

2009-03-11

Buri + S2JDBC対応 Example

id:imai78さん某のブログのぶり入門記マトメ, id:j5ik2oさんのBuriをS2JDBC対応にしてみる その3, id:jfluteさんのDBFlute: Buri対応のプロトタイプ公開, [id:makotanさんのburi]新たに拡張ポイント追加 に触発されて作ってみました(ほとんどid:j5ik2oさんのS2JDBCToDataAccessRuleのおかげです)。

  • Buri + S2JDBC対応 Example の buri-example4 (Eclipseプロジェクトをexportしたもの)
    • [2009-03-13 11:17追記] HogeServiceにOverrideしたinsert関数があるとinsert用OGNL式が重複するのを修正 (S2JDBCToDataAccessRule#insertSetup)

Buriの内部でS2Daoが使用されているので依存ライブラリとしての2Daoは残っていますが、とりあえず利用者からはS2Dao意識しなくてOKです。DocumentProcessorTestで実行してみた感じ、たぶんちゃんと動いてそうです。詳細は家に帰った後にやる気があればかまた明日あたり書きました。

注意として、buri-core 1.0.1-SNAPSHOTはSVNから最新のコードをチェックアウトして自分のローカル環境に mvn install してください(最新のburi-core 1.0.1-SNAPSHOTをmvn deployして欲しいかも)。

[2009-03-12 00:16追記] ファイルの説明を追加

ファイルの説明。S2JDBC-Genで自動生成させるとBuri関係のEntity、Names、Serviceも生成されますが、判りやすいようにExampleでは削除してあります。

  • src/main/java
    • entity.Document
      • S2JDBC-Genで生成したEntityクラス、publicフィールドしかありません、デフォルトのままで改変なし
    • entity.names.DocumentNames
      • S2JDBC-Genで生成したNamesクラス、このExampleでは出番ないですが実際にアプリを書くときは大活躍します、デフォルトのままで改変なし
    • service.AbstractService
      • S2JDBC-Genで生成したものにS2JDBCToDataAccessRule用に public ENTITY select(Long id) を追加してあります
    • service.DocumentService
      • S2JDBC-Genで生成したServiceクラス、デフォルトのままで改変なし、実際にアプリを書くときはここに主にDBへの様々な方法でアクセスするためのコードを追加していきます
    • org.escafe.buri.compiler.util.impl.rules.DataAccessCheckRule
      • protected void checkKeyName(BuriDataFieldType src) でS2JDBC用に javax.persistence.Id アノテーションでプライマリキーを探すようにコードを追加してあります、buri-share.dicon をいじりたくなかったので同名クラスでごまかしています・・・要課題?
    • org.escafe.buri.compiler.util.impl.rules.S2JDBCToDataAccessRule
  • src/main/resources
    • buri/dicon/buri-user.dicon
      • id:makotanさんの新たに拡張ポイント追加で追加された userDataFieldRuleSet で S2JDBCToDataAccessRule を設定、ただ、diconファイルのinclude順の問題で、<include path="buri/dicon/event.dicon" /> と ClassDefUtilImpl のコンポーネント定義を追加
    • buri/dicon/selectByPath.sql
      • BuriPathDataを参照するS2JDBC用の2Way-SQLファイル、使い方は DocumentProcessorTest に
    • 他のdiconファイル
      • 普通のSMART deploy構成、ぶりと関係ないdiconファイルも入っていますが気にしないでください
  • src/test/resources
    • DocumentProcessorTest
      • 動作テスト用のテストクラス、id:imai78さんのぶり入門記ベースです

これで今やっている期限が来週の一人プロジェクトで楽が出来そうです。

なお、BuriAutoSelectProcessorでの簡単な動作確認しかしてないので、それ以外の複雑なことをしたらどのようになるかは試してみないと判らないです(^^;;。

Home > アーカイブ > 2009-03-11

検索
フィード
メタ情報

Return to page top