2009-01-01から1年間の記事一覧
id:c9katayamaさんとid:yone098さんが、T2+Spring+DomaのサンプルとT2+Guice+Domaのサンプルをつくってくれました。 http://d.hatena.ne.jp/c9katayama/20091011ありがとうございます!コメントに書いたのですが、@Daoのconfig要素に指定するクラスはコンテ…
Generic RepositoryがTSSで紹介されていましたが、これもDao(Repository)をinterfaceにして、メソッドにアノテーションつけるタイプですね。 public interface UserRepository extends ReadWriteJpaRepository<User, Long> { @GenericQuery(query = "from User where u</user,>…
WindowsのEclipse3.5のAntなんですが、実行するAntタスクが日本語をログ出力していると、コンソール出力が行われません。Eclipseのエンコーディングの問題なんですよ。だれか解決して〜。現時点では、Eclipse3.5のAntからS2JDBC-GenのAntタスクをうまく動か…
たけぞうさんからリクエストがあったNamesクラスとSqlFilesクラスに対応しました。次のバージョン(2.4.40)に入ります。 Namesクラスは、Gen-Namesタスクを実行すれば自動で作られるようにしました(生成しないことも可)。 SqlFilesクラスは、こんなantタ…
ちょっと細かいところをいくつかアピールしてみます。 SQLファイル中のコメント式のaptを使った検証がかしこくなりました。 Daoのメソッドがこんなだとします。 @Select List<Employee> selectByExample(Employee e); 対応するSQLがこんなだとします。 select * from E</employee>…
さきほど、0.9.5をリリースしたばかりではありますが0.9.6をリリースしました。 以前のバージョンからの変更点は次のとおりです。 Bug [DOMA-22] - SQLファイルの検証処理で式のパースに失敗するとエラーが正しく表示されない問題に対応しました。 [DOMA-23]…
DomaはJava6(JDBC4)に対応したDaoフレームワークです。aptでコンパイル時にコード生成やコードの検証を行うのが特徴です。以前のバージョンからの変更点は次のとおりです。 Bug [DOMA-21] - SQLのブロックコメントに改行が含まれていてSQLの解析に失敗した…
Seasarカンファレンスで発表してから2週間くらいたちますが、そのときもらった質問等を受けて、使い勝手を再考中です。 で、いろいろ考えた結果、エンティティをPOJOにすることにしました。理由はいくつかあるのですが、もっとも大きなものは、エンティティ…
思いのほか多くの方に来ていただきました。どうもありがとうございました。プレゼン資料公開しておきます。Sc2009autumn 次世代Daoフレームワーク DomaView more presentations from taedium.PDF版もあります。SlideShareのほうは若干フォーマットが崩れしま…
Daoフレームワークである、Doma 0.9.4 をリリースしました。 Doma 0.9.3からの変更点は以下のとおりです。 Bug [DOMA-7] - ifコメントが連続でネストし、かつ、それらの条件が成立しない場合にwhereが出力されてしまう問題に対応しました。 [DOMA-8] - バイ…
プロジェクトの右クリックで開くコンテキストメニューから「Properties」 - 「Java Compiler」 - 「Annotation Processing」 と辿ると、注釈処理の設定画面が開くじゃないですか。この画面の説明ページをたまたまみつけたのでリンクしておきます。 http://ma…
SAStruts と GWT を使ったものをそれぞれ用意してみました。ブラウザでざっくり見てみようかなという場合はこちらをどうぞ。 https://www.seasar.org/svn/sandbox/doma/tags/0.9.3/doma-sastruts-demo/ https://www.seasar.org/svn/sandbox/doma/tags/0.9.3/…
DaoフレームワークであるDoma 0.9.3をリリースしました。Doma 0.9.1からの変更点は以下のとおりです。(わけあってバージョン0.9.2は存在しません) Improvement [DOMA-2] - 組み込みのドメインクラスの名前をそれとわかるものにし、骨格抽象クラスの名前を…
javacでAnnotation Processroにオプションを渡す場合-Aが使えるのですが、Mavenではオプションが複数ある場合に対応できていない、という話。Antではこう書けます。 <javac fork="yes" srcdir="${src}" compiler="javac1.6" classpathref="classpath" destdir="${build}" debug="on" encoding="UTF-8" > <compilerarg line="-Adto.generation=true -Adto.package=hoge.dto"/> </javac> d…
最近作ったDaoフレームワークDomaを紹介します。 http://event.seasarfoundation.org/sc2009autumn/Session#S3042 ここ数年、S2Daoをメンテナンスし、S2JDBC-Genを作り、Hibernate(JPA)の本を書いてと、3つのO/Rマッパー(S2Dao、S2JDBC、Hibernate)に深…
DomaでDTOをaptで自動生成できるようにしました。どういうことかというと、次のようなDomaの@Entityがついたクラスをコンパイルすると、 @Entity public interface Emp { @Id Identity id(); Name name(); Salary salary(); } つぎのようなDTOを即座に自動生…
Doma 0.9.1 をリリースしました。DomaはJava6以上の環境で動作するO/Rマッパー(DAOフレームワーク)です。Java6で導入されたPluggable Annotation Processing APIを使ってコード生成やコードの妥当検査を行うという特徴があります。 ダウンロードはこちらか…
まだリリースできていないのですが、今作っているDaoフレームワークについて発表してきました。せっかくなので資料を置いておきます。次世代DaoフレームワークDomaView more presentations from taedium.モノはだいたいできているのですが、課題はドキュメン…
Java6(JDBC4.0)からjava.sql.Connectionにjava.sql.ArrayのファクトリメソッドであるcreateArrayOfが追加されました。(同様にBlobを生成するcreateBlobとかClobを生成するcreateClobとかも追加されています。)Domaでは、こんな風に呼び出せるようにして…
これまで、Google Codeを使っていたんですが、Seasarプロジェクトに移行しました。 https://www.seasar.org/svn/sandbox/doma/ そして、さっそくHudsonを使わせてもらいました。 https://www.seasar.org/hudson/job/doma/ https://www.seasar.org/hudson/job…
SQLなどのログをアプリ側で取得したいという話をよく聞くので、必要そうなログは特定のインタフェースを実装したクラスへ全部送るようにしてみました。こんなインタフェースです。 public interface JdbcLogger { void logMethodEntering(String callerClass…
Domaではsql上のバインド変数は、コメントでDaoのメソッドのパラメータ名とマッピングします。 たとえばこんなかんじ。idがマッピングされます。 SQLファイル select * from employee where id = /*:id*/99 Daoのメソッド @Select Employee selectById(Id id…
メインの機能はほぼできたので、7月中に最初のリリースをしようと思います。とりあえず、Oracle、PostgreSQL、MySQL、HSQLDBの4つをサポートします。あとは必要に応じて。もし現時点のDomaに興味があれば、 http://domaframework.googlecode.com/svn/trunk/ …
S2DaoはDaoとBean(エンティティ)の関係は基本的に1対1ですが、Domaでは1対nもokにしてます。3つのテーブルしか扱わないとかだと、1つのDaoで十分かも。 @Dao(config = AppConfig.class) public interface AppDao { @insert int insert(Employee employee);…
いま実装中です。Daoの定義はこうなる予定。 @Dao(config = MyConfig.class) public interface EmployeeDao { @Function Salary getTotalSalary(@In Id deptId, @Out Salary average, @ResultSet List<Employee> employees); @Procedure(name = "aaa_proc") void fillT</employee>…
エンティティを1件ずつイテレートする機能を実装しました。IterationCallbackはS2JDBCを参考に同じインタフェースにしました。 Daoの定義はこんなん。@Selectのiteration要素をtrueにします。 @Dao(config = MyConfig.class) public interface EmployeeDao e…
select時のページングとか悲観的ロックはsqlファイルで用意された元のsqlを書き換えて実行します。呼び出し時に動的に変更したいだろうからこの情報はSelectOptionsというパラメータで渡します。Daoはこんなん。 @Dao(config = MyConfig.class) public inter…
前回のエントリでパラメータで渡す例を載せましたが、アノテーションで指定しまったほうがわかりやすいと思い直してこうしました。 @Dao(config = MyConfig.class) public interface EmployeeDao { @Delete(queryTimeout = 10, ignoresVersion = true) int d…
S2Daoだとタイムアウトなどのオプションをクエリごとに指定したりできない(diconで一律設定はできます)んですが、DomaではDaoのメソッドでオプションを渡せるようにしてみました。 @Dao(config = MyConfig.class) public interface EmployeeDao { @Delete …
S2JDBCを参考にIDの自動採番機能もつけました。DBのauto incrementを使う場合はこんなん。 @Entity public interface Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) IntegerDomain employee_id(); ... } シーケンスを使う場合はこ…