2008/03/13

cayenneでPKを指定してデータを取得する時のはまりどころ

cayenneではDataObjectUtils.objectForPKによってPKを指定してデータを取得できるが
このメソッドはデフォルトでキャッシュしてしまう。なので以下のメソッドを利用しましょう。

ObjectIdQuery query = new ObjectIdQuery(new ObjectId(AAAA.class.getSimpleName(), AAAA.ID_PK_COLUMN, id), false, ObjectIdQuery.CACHE_REFRESH);
(AAAA)DataObjectUtils.objectForQuery(dataContext, query);

ここでポイントはCACHE_REFRESH を指定して常に新しい情報を取得していること。
これを指定しないとだめ

0 件のコメント: