2012-07-15 51 views
0

我试图在Google App Engine数据存储区(本地测试系统)中存储带有嵌入实体Range的实体Job。当我坚持一个新的实体时,我可以看到嵌入实体的属性是持久的。但是,如果我通过Id或查询加载实体,范围属性为空。嵌入式实体未加载

@PersistenceCapable 
public class Job { 

    // embedded entity 
    @PersistenceCapable 
    @EmbeddedOnly 
    public static class Range { 

     @Persistent 
     private long start; 

     @Persistent 
     private long length; 

     public long getLength() { 
      return this.length; 
     } 

     public void setStart(long start) { 
      this.start = start; 
     } 

     public long getStart() { 
      return start; 
     } 
    } 

    @PrimaryKey 
    @Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY) 
    private Key key; 

    @Persistent 
    @Embedded 
    private Range range; 

    // getters and setters ... 
} 

回答

0

再一次,答案是:这不是一个错误,它是一个功能。事实证明,这个嵌入式实体是懒惰地加载的,只要我没有调用getter,这些属性就不会被填充。