第一篇文章在这里类变量,希望有人能摆脱也许在某个问题上我一直在试图玩弄一些轻...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