そう思い立ちました。。。がっ!
JDOのオブジェクト比較にSQLってどうするんだろ?
と思い立ちしばし、、、
でできました。
UserService userService = UserServiceFactory.getUserService();
User user = userService.getCurrentUser();
PersistenceManager pm = SessionManager.get().getPersistenceManager();
Query query = pm.newQuery(Shop.class);
query.setFilter("creator == crrentUser");
query.declareParameters("com.google.appengine.api.users.User crrentUser");
try {
List<Shop> shopList = (List<Shop>)query.execute(user);
for ( Shop oldShop : shopList ) {
Shop newShop = new Shop(oldShop);
shopForm.addShop(newShop);
}
} finally {
query.closeAll();
}
Query::setFilter()でSQLイメージを作って
Query::declareParameters()で型を宣言します。
Query::execute()で比較するオブジェクトを設定しておきます。
これでOKですね!
ログインしたユーザのみの機能もこれでOKですね。
0 件のコメント:
コメントを投稿