Я не могу загрузить дочерние объекты после их сохранения в Google App Engine.Я уверен, что они экономят, потому что я могу видеть их в хранилище данных.Например, если у меня есть следующие две сущности.
public class Parent implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String key;
@OneToMany(cascade=CascadeType.ALL)
private List<Child> children = new ArrayList<Child>();
//getters and setters
}
public class Child implements Serializable{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Extension(vendorName="datanucleus", key="gae.encoded-pk", value="true")
private String key;
private String name;
@ManyToOne
private Parent parent;
//getters and setters
}
Я могу прекрасно сохранить родителя и ребенка, используя следующее:
Parent parent = new Parent();
Child child = new Child();
child.setName("Child Object");
parent.getChildren().add(child);
em.persist(parent);
Однако, когда я пытаюсь загрузить родителяи затем пытаюсь получить доступ к детям (я знаю, что GAE лениво загружается). Я не получаю записи о детях.
//parent already successfully loaded
parent.getChildren.size(); // this returns 0
Я смотрел учебник после учебника, и пока ничего не получалось.Я использую версию 1.3.3.1 SDK.Я видел проблему, упомянутую в различных блогах и даже на форумах App Engine, но ответ всегда связан с JDO.Я делаю что-то не так или у кого-то еще была эта проблема и она решена для JPA?