2

我在 appengine 上使用 objectify 3.1 并尝试进行祖先查询。我想获取某个对象的所有子对象。下面是我的代码:

@Cached
@Entity
public class Car {

 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;

 private String make;
 private String model;

}

@Cached
@Entity
public class Tire {

@Id
public String keyName; 


@Parent Key<Car> car;

private String brand;
private String size;

}

我的查询是这段代码:

        List<Tire> list= ofy.query(Tire.class).ancestor(new    Key<Car(Car.class,carID))).list();

当我创建轮胎对象时,我使用此代码来设置关系:

        newTire.setCar(new Key<Car>(Car.class,Car.getID()));

我知道 Parent 关系在那里,因为我可以在数据存储区管理员中查询它,它会在解码的实体键中显示父级:

Decoded entity key: Car: id=135172 > Tire: name=myCarUniqueID

这个查询总是返回 0 个结果,看起来我已经遵循了 objectify 网站上的所有最佳实践。任何帮助,将不胜感激!

4

1 回答 1

2

您的代码看起来不错,所以唯一可能出错的是不存在的carID.

网站上列出的Objectify javadoc实际上是用于即将推出的 Objectify 4 的主干版本。您需要查看的是Objectify 3.1 javadoc:该版本已fetch()在查询中。

此外,@GeneratedValue不是Objectify 注释

于 2012-04-11T20:01:38.823 回答