嵌入式实体未加载

时间:2012-07-15 11:05:23

标签: google-app-engine datanucleus

我正在尝试将实体Job与嵌入式实体Range存储在Google App Engine数据存储(本地测试系统)中。当我坚持一个新实体时,我可以看到嵌入实体的属性是持久的。但是,如果我通过Id或查询加载实体,则range属性为null。

@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 ... 
}

1 个答案:

答案 0 :(得分:0)

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