2014-06-24 14 views
0

我具有低於含有EmbedMap,這反過來又包含一個嵌入對象實體。客觀化 - java.lang.IllegalStateException:在路徑**預期屬性值

@Entity 
public class Data 
{ 
    @Id private long id; 
    private String name; 
    @EmbedMap Map<String, PlayerData> dataMap = Maps.newHashMap(); 
} 

@Embed 
public class PlayerData 
{ 
    private long playerId; 
    List<TurnData> turns = Lists.newArrayList(); 
} 

@Embed 
public class TurnData 
{ 
    private long turnId; 
    private long score; 
} 

當我嘗試使用到數據實體保存到數據存儲對象化,我得到下面的異常(我目前物化4.0b3):

com.googlecode.objectify .impl.cmd.SaverImpl.entity(SaverImpl.java:33)at test.BattleResponseTest.populateBattlesData(BattleResponseTest.java:172)at test.BattleResponseTest.testGetAllBattles_checkBattleIds(BattleResponseTest.java:185)at sun.reflect.NativeMethodAccessorImpl.invoke0(本地方法)在sun.reflect.NativeMethodAccessorImpl.invoke(NativeMeth在org.junit.runners.model.FrameworkMethod $ 1上的java.lang.reflect.Method.invoke(Method.java:601)上的sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) runReflectiveCall(FrameworkMethod.java:45)在org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)在org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:42)在組織.org.junit.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)at org.junit.runners.ParentRunner.runLeaf (ParentRunner.java:263)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:68)at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:47)at org.junit.runners.ParentRunner $ 3 .run(ParentRunner.java:231)at org.junit.runners.ParentRunner $ 1.schedule(ParentRunner.java:60)at org.junit.runners.ParentRunner.runChildr恩(ParentRunner.java:229)在org.junit.runners.ParentRunner.access $ 000(ParentRunner.java:50)在org.junit.runners.ParentRunner $ 2.evaluate(ParentRunner.java:222)在org.junit.runners .ParentRunner.run(ParentRunner.java:300)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run (TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java :683)org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)引起通過:java.lang.IllegalStateException:在路徑'dataMap.1.turns':期望的屬性值,得到{turnId = {1},得分= {135000}}在com.googlecode.objectify.impl.Path.throwIllegalState(路徑.java:134)在com.googlecode.objectify.impl.T ransmog.populateFields(Transmog.java:402)在com.googlecode.objectify.impl.Transmog.populateFields(Transmog.java:430)在com.googlecode.objectify.impl.Transmog.populateFields(Transmog.java:430)在COM .googlecode.objectify.impl.Transmog.populateFields(Transmog.java:430)在com.googlecode.objectify.impl.Transmog.save(Transmog.java:364)在com.googlecode.objectify.impl.Transmog.save(Transmog .java:100)... 30更多

請幫忙?

回答

1

格式物化V4用來存儲嵌入的集合不能容納存儲嵌套集合的內部集合。如果你遷移到v5,你將能夠做到這一點。

+0

感謝您的信息。 –

相關問題