第一篇文章在這裏類變量,希望有人能擺脫也許在某個問題上我一直在試圖玩弄一些輕...java.lang.IllegalStateException:試圖創建多個社團在
作爲的一部分我們正試圖構建一個界面來顯示地圖上的點和地圖上的路徑。
對於我們的第一次衝刺,我設法使用Objectify來存儲/檢索物品 - 它變得很棒!
現在我們正在努力擴展我們下一個春天的功能。現在嘗試存儲MapPath類型的對象時存在問題(請注意,我們的兩種數據類型MapPath和MapData都擴展了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 2012-03-13 02:10:09
請將答案標記爲已接受:-) – stickfigure 2012-03-13 14:48:42