2012-04-11 2 views
1

Я использую objectify 3.1 в appengine и пытаюсь выполнить запрос предка. Я хочу получить все дочерние объекты определенного типа. Ниже мой код:Запрос предка с объективом не возвращает результаты

@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())); 

Я знаю, что отношения Родителя есть, потому что я могу запросить за него в хранилище данных администратора и показывает родитель в декодированном ключе объекта:

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

Этот запрос всегда возвращает 0 результатов, и, кажется, Я следил за всеми лучшими практиками на веб-сайте objectify. Любая помощь будет оценена!

+0

Что касается класса DepartmentPersonnelInfo, вопрос? Или это должен быть класс шин? – alex

+0

Да, это был класс шин. Он был исправлен. – Patrick

+1

Должно быть что-то более продолжительное, что не показано здесь, потому что в вашем примере ничего не получается неправильно (за исключением различных опечаток от его ввода вручную). Попробуйте запустить эквивалентный запрос предка в GQL со страницы администрирования хранилища данных. – stickfigure

ответ

2

Ваш код выглядит нормально, поэтому единственное, что может быть неправильным, - это несуществующий carID.

The Objectify javadoc перечислены на сайте на самом деле для версии ствола, который является предстоящая объективизации 4. Что вы должны смотреть на это Objectify 3.1 javadoc: эта версия имеет fetch() по запросу.

Также @GeneratedValue является not an Objectify annotation.

+1

Проблема была в том, что я передавал String ID вместо Long ID ... проблема решена. Итак, да, вы правы! – Patrick