最初のポストの変数に複数の関連付けを作成しようと、誰かが、おそらく私が両立しようとしてきた問題にいくつかの光を当てることができ望ん...java.lang.IllegalStateException:の一環として、ここではクラス
地図上のポイントと地図上のパスを表示するためのインターフェースを構築しようとしています。
私たちの最初のスプリントでは、私はObjectifyを使用してアイテムの保管/取り出しを行うことができました。
今、私たちは来春の機能を拡張しようとしています。 MapPath型のオブジェクトを格納しようとすると問題が発生しました(MapPathとMapDataの2つのデータ型はどちらもクラスDataを拡張しています)。簡単なコードスニペットは次のようになります。
@Entity
public class Data extends JavaScriptObject
{
@Id
Long id;
private String name;
private String dataSet;
...getters and setters
}
@Subclass
public class MapData extends Data implements Serializable{
{
private String name;
private String address;
private String dataSet;
@Embedded
private Coordinate location;
....constructors, getters/setters
}
@Subclass
public class PathData extends Data implements Serializable{
private String name;
private String address;
private String dataSet;
@Embedded
private Coordinate[] path;
...etc
}
あなたがまだあなたを失っていないことを願っています。私は基本的にすべてのトランザクションを処理するDataServiceクラスを持っています。私は、次のユニットテストを持っている:
@Test
public void storeOnePath(){
PathData pd = new PathData();
pd.setName("hi");
DataService.storeSingleton(pd);
Data d = DataService.getSingleton("hi");
assertEquals(pd,d);
}
次のようにgetSingletonの実装は次のとおりです。
public static void storeSingleton(Data d){
Objectify obj = ObjectifyService.begin();
obj.put(d);
}
JUnitは文句:
java.lang.ExceptionInInitializerError
at com.teamrawket.tests.DataTest.storeOnePath(DataTest.java:59)
...<taken out>
Caused by: java.lang.IllegalStateException: Attempting to create multiple associations on class com.teamrawket.server.MapData for name
at com.googlecode.objectify.impl.Transmog$Visitor.addRootSetter(Transmog.java:298)
at com.googlecode.objectify.impl.Transmog$Visitor.visitField(Transmog.java:231)
at com.googlecode.objectify.impl.Transmog$Visitor.visitClass(Transmog.java:134)
at com.googlecode.objectify.impl.Transmog.<init>(Transmog.java:319)
at com.googlecode.objectify.impl.ConcreteEntityMetadata.<init>(ConcreteEntityMetadata.java:75)
at com.googlecode.objectify.impl.Registrar.registerPolymorphicHierarchy(Registrar.java:128)
at com.googlecode.objectify.impl.Registrar.register(Registrar.java:62)
at com.googlecode.objectify.ObjectifyFactory.register(ObjectifyFactory.java:209)
at com.googlecode.objectify.ObjectifyService.register(ObjectifyService.java:38)
at com.teamrawket.server.DataService.<clinit>(DataService.java:20)
... 27 more
「クラスの複数の関連付けを作成しようとしない、正確にどのような...名前のために "暗示する?
長い投稿と何らかのフォーマット上の問題が発生する場合は、申し訳ありません。
これが問題でした!ありがとうございました。 – geogaddi
回答に合っているとフラグを付けてください:-) – stickfigure