JDOFatalUserExceptionその2 | sola's note

sola's note

日ごろのメモを書いていきます。何か新しいものを作るために。

以前ぶちあたった

JDOFatalUserException

の謎。
  データストアにエンティティ詰めずにリクエストしたらJDOFatalUserException?

の原因がわかった。
原因というか、ただのミスなんだけど、

エンティティのモデルにするクラスに

@PersistenceCapable(identityType = IdentityType.APPLICATION)

をつけ忘れていたのがいけなかったみたい。
JDOを使う時の条件として
  Google App Engine for Javaのドキュメント
には

☆以下引用☆
1. クラスに [@PersistenceCapable(identityType = IdentityType.APPLICATION)] アノテーションをつける。
2. メンバー変数に Long 型の id を定義し、[@PrimaryKey] アノテーションと[@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)] アノテーションをつける。
3. 永続化したいメンバー変数に 「@Persistent」 アノテーションをつける。
☆引用終わり☆

と書いてあったんだけど、
この1個目が足りないと、クエリ生成/送信時に

JDOFatalUserException

が投げられるみたいです。

Perhaps you need to run the enhancer on this class?

と言われたら、疑うといいかも。