GoogleAppEngineホストアプリケーションでObjectifyをデータアクセスレイヤーとして使用しています。埋め込みマップをオブジェクト化できません。
マップを永続化しようとすると問題が発生します。私のbeanは次のようになります:
@Entity
@Cached
class MyBean{
@Id
private Long id;
@Embedded
Map<String, String> parameters = new HashMap<String, String>();
public MyBean(){}
//getters and setters below
}
まず、マップ 'parameters'はプライベートではなく、JRE例外がスローされています。 マップを保存すると、すべてがうまくいく。それをデータストアから取得すると失敗します。
私の回避策は、@Serialized注釈を使用することです。これは単なる回避策です。なぜなら、私が達成したいのは、GAE Datastoreのexpando機能を使用することです。
objectify docによれば、私は正しい操作をしています。
例外の詳細: com.googlecode.objectifyでcom.googlecode.objectify.impl.Transmog.loadSingleValue(Transmog.java:364) でjava.lang.NullPointerExceptionが:によって引き起こさ
。 impl.load.EmbeddedMapSetter.safeSet(EmbeddedMapSetter.java:65) でcom.googlecode.objectify.impl.load.CollisionDetectingSetter.set(CollisionDetectingSetter.java:37) com.googlecode.objectify.impl.Transmogで。 loadSingleValue(Transmog.java:359) (com.googlecode.objectify.imp) l.Transmog.load(Transmog.java:340)at com.googlecode.objectify.impl.ConcreteEntityMetadata.toObject(ConcreteEntityMetadata.java:203) at com.googlecode.objectify.impl.QueryImpl $ ToObjectIterator.translate(QueryImpl .javaファイル: で com.googlecode.objectify.impl.QueryImpl $ ToObjectIterator.translate(QueryImpl.java:657) で668) com.googlecode.objectify.util.TranslatingIterator.next(TranslatingIterator.java:35)
私は4ofy 4 libを得ることができるSVNリポジトリからappart別の場所はありますか? –
はい、ここに:http://objectify-appengine.googlecode.com/svn/maven/com/googlecode/objectify/objectify/4.0a3/objectify-4.0a3.jar – stickfigure
すべてがOfy4と甘い仕事をしています、ありがとう –