タグ

jdoに関するfunyamoraのブックマーク (7)

  • JDOの1対多

    システムに絶対はない。だからシステム屋は悩み続けなければならん。君の苦悩を私は支持するよ。(すみませんGistにソース移行中です) 結構はまりました。 ここにあるようにバグにより 親のオブジェクト、子のオブジェクトのキーはKeyにする必要があるようです。 ※子は仕様にも記述してありますけどね。 まず親側のクラスを class Shop { @PrimaryKey @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) private Key key; @Persistent(mappedBy = "shop") private List<Image> imageList; ・・・getter,setterは未記述 } と記述します。 Keyは通常のIDENTITY(Longで自動設定した場合)と同一で、特に登録などの際に 設定する

  • GAE/J、DatastoreでBlobはlazy loadingされる : CB NANASHI管理人ブログ

    2009年06月08日23:23 カテゴリGoogle App Engine GAE/J、DatastoreでBlobはlazy loadingされる 開発サーバで検証しています。 Datastoreに保存したentityの属性について、先日属性はすべて取得されると書きましたがBlob型だけは例外的にlazy loadingされます。PersistenceManagerをcloseする前に取得しておく必要があります(getterを呼んで読み捨てるだけでOK)。 Groupsの投稿によると場合によってはさらに複雑な振る舞いをするようです。 またText型についてもBlobと同様にlazy loadingされるようです(この行のみ6/9修正)。 cbnanashi@GAE/Jをパフォーマンス改善のために修正していて気づきました。大きなBlobをわざわざ別entityに切り出したのですが必ずしも

  • JDOのモデルの状態を理解しよう - ひがやすを技術ブログ

    GAEのJDOのモデルは、ざっくりいうと4種類の状態があります(当はもっといっぱいあるけど、4つをおさえておけば普通はOK)。 transient persistent detached hollow モデルをnewして、PersistenceManager#makePersistent()を呼ぶまでは、transientです。 PersistenceManager#makePersistent()がよばれるとpersistentな状態です。persistentなモデルの状態は、PersistenceManagerをcloseするかTransactionをcommitしたときに、データストアに反映されます。 PersistenceManagerをcloseしたときからが、運命の分かれ目。何の設定もしないとhollowになり、lazy loadingされているオブジェクトに触ろうとするとエ

    JDOのモデルの状態を理解しよう - ひがやすを技術ブログ
  • データストアに保存したデータが1000件を超えた場合の対処方法は?

    Either email addresses are anonymous for this group or you need the view member email addresses permission to view the original message DataStoreにdb.Modelを継承したクラスを使ってどんどんデータを蓄積していった場合で、 1000件を超えた場合、 GqlQueryの fetch() メソッドの 1000 まで制限のため、 1000件以降のデータが取り出せなくなるのですが、どうすればいいのでしょうか。 たとえば、10件ごと順番に取り出していく・・・という方法(API)が提供されていると 思っていたのですが、わたしが調べた範囲では、わからなかったので、 ここで質問させていただきました。 もし、逐次取り出しAPIがない場合は、 1000件制限を回避

  • 【Google App Engine】 Entityとトランザクション

    Entity設計について GAEではEntityというモデルを定義してJDOを使ってデータを永続化する。Entityはオブジェクトモデルであり画面など実際の業務アプリケーションや外部インターフェースなどを直感的に表現できるという点で優れている。しかし、階層型ということもあり、リレーショナルなモデルとはあまり馴染まない。もしかしたら、これまでRDB的な設計を中心にやってこられた方にとっては苦痛さえ感じるかもしれない。Entityをうまく設計するためには、ひとまずRDB的な頭をリセットしてオブジェクト的な発想をすることをおすすめする。一度慣れてしまうと誰でも簡単にサクサク作れるようになるだろう。逆に、RDBの呪縛から開放されOOに覚醒してしまうともう後には戻れないので注意が必要である。RDBって不要じゃん?とか、これからの時代はOOでKey/Valueだ!などと思うようになれば覚醒した証拠だ。

    【Google App Engine】 Entityとトランザクション
  • だらだら備忘録: Creating, Getting and Deleting Data

    2009/05/09 Creating, Getting and Deleting Data つづき キーも良くわからんなぁ。 Creating, Getting and Deleting Data Saving a JDO data object to the datastore is a simple matter of calling the makePersistent() method of the PersistenceManager instance. The App Engine JDO implementation uses the primary key field of the object to keep track of which datastore entity corresponds with the data object, and can generat

  • データストアを使ったカウンターサーブレットのサンプル - うなの日記

    ドキュメントを見ながら、データストアを使ったカウンターのサンプルを作ってみました。 カウンタの値を格納するクラス データストアでは、Java Data Objects(JDO)の標準インターフェイスを介して、任意のエンティティ(アノテーションが付与されたPOJO)を永続化できます。カウンターをつくるので、まずはカウンタの値を格納するエンティティを作成します。 package test; import javax.jdo.annotations.IdentityType; import javax.jdo.annotations.PersistenceCapable; import javax.jdo.annotations.Persistent; import javax.jdo.annotations.PrimaryKey; /* * カウンタの値 */ @PersistenceCapa

    データストアを使ったカウンターサーブレットのサンプル - うなの日記
  • 1