Eclipseのプラグインを使うとすんなりDeployの成功し、アプリが動くのを確認できました。
チュートリアルはGuestBookというやつで、JDO + JSPで動くもの。
com.google.appengine.api.users.UserServiceというクラスで、Googleのログイン機能が使えるみたい。
JDOでのDBアクセスは、、JDO/JPAアクセスを提供してくれるDataNucleusというApacheライセンスv2.0のオープンソースが使われていました。
含まれていたJARは以下で、DataNucleus関連は4つ。
- appengine-api-1.0-sdk-1.2.0.jar
- datanucleus-appengine-1.0.0.final.jar
- datanucleus-core-1.1.0.jar
- datanucleus-jpa-1.1.0.jar
- geronimo-jpa_3.0_spec-1.1.1.jar
- geronimo-jta_1.1_spec-1.1.1.jar
- jdo2-api-2.3-SNAPSHOT.jar
DataNucleusというのはあまり良く知らなかったんですが、JPOXの後継とのことで、JDO1、 JDO2、JDO2.1、JPA1の準拠に加え、LDAPやExcel、XMLなどへの永続化がJDO/JPAから出来るらしい。
JDOとJPAはJDO v JPAとかを見つつ、用途に合わせて選択していけばよいんですね。
ちなみにJPAを使う方法は、Using JPA with App Engineにありました。
先がBigTableってーことで、RDBではないですし、いままでの様に複数テーブルをJoinした複雑なSQLってのはやっぱりできなかったりするんだろうなーって想像もあるので、癖を知っておくのは必要そうですね。
...とおもっていたら、書いてあった。
Unsupported Features of JDO
Unsupported Features of JPA
many-to-manyはダメなんすね。
"Join" queriesってのはどんなものを指しているんだろ? SQLを書く時にJoinは使ってはダメって事かなぁ。。
....含まれているJARがdatanucleus-appengine-1.0.0.final.jarってことで、GAE専用のもの(BigTable専用のもの)だったりするんですかね?
でも、もしかしてGoogleドキュメントのExcelを永続化先に選べちゃったりするんかしら??
ぼーっとアプリ管理画面をみていたら、Cronの文字が。
Cronも使えるんですねー。Scheduled Tasks With Cron for Java
あとは、メールを送信できるMail APIと、メモリーキャッシュのMemcache APIもあるし...画像を切り抜き、回転できるようなImage Manipulation APIもある。
さて、どんなアプリつくるかなぁー