2011-07-30

DAOBaseクラスでObjectify-appengineを使いやすくする

Objectify-appengineでは、
ObjectifyService.registerメソッドを記述して、Entityを登録する
という手順が必要となります。これはちょっと面倒なんですが、もっと厄介なのは
同じクラスを登録するとエラーが発生する
という仕様になっている点です。クラスの情報はスタティックな領域に記録されているので、registerメソッドで同じものを登録しないように気を付けなければなりません。その解は、公式サイトのBestPracticeに書いてあります。DAOBaseクラスを使えと、、、
public class DAO extends DAOBase
{
    static {
        ObjectifyService.register(ここに利用するEntityを記述);
     }

  //DAOとしてデータベース周りのラッパーメソッドを以下に書いていけば良い
}
基本的に上述のようなDAOクラスを継承したクラスを作っておけば、あとは下記のように呼び出せばOK。
DAO dao = new DAO();
dao.ofy().find(........);
dao.ofy().put(......);

ただこのようにfindやputを呼び出すよりも、実際は、DAOクラスに関連するラッパーメソッドを実装して呼び出すようにするのがいいですね。

0 件のコメント:

コメントを投稿