2010-06-01から1ヶ月間の記事一覧

SQLのログ出力できた

Soma(http://soma.codeplex.com/)でSQLのログ出力を実装できました。 たとえばこんなコードを記述すると using (var context = new SampleEntities()) { context.Employee.Where(e => e.Id > 1).ToList(); Console.WriteLine("------------"); context.Exe…

Doma Tools の Eclipse 3.6 での稼動確認

Doma自体は別に問題ないんですが、EclipseプラグインであるDoma Toolsの挙動がちょっと怪しいです。。。 まだ原因わかっていないですが、SQLの変更を検知して対応するDaoをビルドするところでたまにエラーがでるような。 すぐに解決できる気がしないんですが…

Repository

Entity FrameworkのサンプルだとDaoじゃなくてRepositoryのほうが多い気がするのでDBアクセスを行うクラスをRepositoryと呼ぶことにします。自分の中ではどっちもおんなじですけど。アプリでつくるRepositoryはこんな感じになります。 public class Employee…

SQLの管理

SQLの管理ですが、リソースファイル(resxファイル)を使うのがいいんじゃないかと考えています。いままで試したことがなかったのですが、リソースファイルでは文字列や画像だけでなくテキストファイルを管理できるのでこれが使えるんじゃないかと。 リソース…

SQLのログ

Somaは、Entity Frameworkをベースにしたフレームワークにすることにしました。PostSharpを使うのは見送り。O/Rマッパーには必須と思われるSQLのログを出力する機能がEntity Frameworkにはないので、プロバイダーをラップしてSQLが実行される直前でログ出力…

PostSharpのコンパイル時のメッセージ

コンパイル時の検証エラーでメッセージをユーザーに伝えたいことがあります。APIをみるとMessageクラスのコンストラクタでソースファイルや行番号を指定できるようになっています。 http://doc.sharpcrafters.com/postsharp/2.0/##PostSharp.chm/html/M_Post…

Entity FrameworkでSQLファイルをサポートする案

PostSharpにこだわらずにEntity Frameworkで動的なSQLを扱いやすくするというのもありかもしれません。 たとえば拡張メソッドを使ってObjectContextにメソッドを追加して、SQLファイルのパスやパラメータ(匿名型などで)を渡せるようにしたり。 int max = .…

PostSharpでexternを使ったDaoパターン

PostSharpは、virtualなメソッドにアスペクトをかけられないようです。ですのでインタフェースのメソッドをアスペクトすることもできない。 サンプルをみていてわかったんですが、staticでexternにするとメソッドのbodyを持たなくてもいいので宣言だけ見ると…

Daoフレームワーク Doma 1.8.0 をリリース

Java6対応のDaoフレームワーク Doma 1.8.0 をリリースしました。ダウンロードはこちらからできます。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバー…

Domaを参考に作るSQL中心の.NET用Daoフレームワーク

Domaを作った経験をベースにしつつあんまりDomaの実装にとらわれない形で作っていこうと思います。(ただし、API的にはあんまり違いはないと思います。基本的にDaoを介して、検索系はSQLファイルにマッピングし、更新系はデフォルトで自動生成になります。)…

SQLの組み立て用APIを実装してみました

SNAPSHOTおいておきます。 http://maven.seasar.org/maven2-snapshot/org/seasar/doma/doma/1.8.0-SNAPSHOT/doma-1.8.0-20100606.122116-1.jar 使い方はこんな感じです。@Delegateと組み合わせて使うのがお奨めです。 SELECT SelectBuilder builder = Select…

SQLの組み立て用APIの構想

なんらかの理由でSQLファイルを使いたくない場合は、Spring JDBCとか、DbUtilsを使ってもらえばいいかなぁと思っていましたが、SQL組み立て用のAPIがあってもいいかもしれないと思い、プロトタイプを作成中。 Java SelectBuilder builder = SelectBuilder.ne…

Daoフレームワーク Doma 1.7.0 をリリース

Java6対応のDaoフレームワーク Doma 1.7.0 をリリースしました。ダウンロードはこちらからできます。 http://doma.seasar.org/downloads.html Mavenをご利用の方はこちらを参照ください。 http://www.seasar.org/wiki/index.php?Maven2RepoRemote 以前のバー…

Doma 1.7.0の新機能とか変更点とか

いくつかあるのですが、ドキュメントのリンクといっしょに紹介します。 @Script関連 @Scriptのドキュメントは以下のものです。 http://doma.seasar.org/reference/query/script.html @Scriptについては、Daoメソッドとscriptファイル間をジャンプできるよう…

SQLファイルを使った場合でも楽観的排他制御

次のバージョン(Doma 1.7.0)からSQLファイルを使った場合でも楽観的排他制御を行うようにします。 主に、論理削除のことを考慮してです。 たとえば、次のエンティティとDaoがあるとします。 エンティティ @Entity class Employee { ... @Version public in…