JTropyを作り直した(Google App Engine for Java上で動くTroppyクローン)

Java版のTropyクローン(JTropy)を自宅サーバで公開していたが、
入院してしまい自宅サーバの維持ができなくなったので、GAE上で動くように作り直した。
http://jtropy.appspot.com/

元のソースは自宅サーバでのみ管理していて引っ張りだせなかったのでスクラッチから書き直した。
今回作り直したソースをGitHub上で晒す。
http://wiki.github.com/2ca3/JTropy


JDOを始めて使ってみたので、嵌った所をメモ。

JDOQLのcountは小文字でなければいけない。

SELECT等のステートメントは大文字小文字どちらでも良い。
OK

SELECT count(id) FROM hoge;

OK

select count(id) from hoge;

NG

SELECT COUNT(id) FROM hoge;

JDOQLの結果で0件または1件だけの場合の返却オブジェクト

JDOQLの返却結果は基本的にコレクションとなるが、
結果が0件または1件までの場合はUniqueを指定することで対象オブジェクトで返却される。

"SELECT UNIQUE FROM 〜"で指定

JtropyBean jtropyBean = (JtropyBean) pm.newQuery("SELECT UNIQUE FROM " + JtropyBean.class.getName() + " WHERE id == 1").execute();

setUnique(true)でもOK

Query q = pm.newQuery(JtropyBean.class);
q.declareParameters("long search_id");
q.setFilter("id == search_id");
q.setUnique(true);
JtropyBean jtropyBean = (JtropyBean) q.execute(new Long(1));