У меня есть две модели сущности Студент и посещаемость, так что каждый участник посещаемости имеет связанного родителя-ученика.как применить фильтр даты на запрос предка
Участники Модель:
@Entity
public class Attendance {
@Id
Long id;
@Index
Date date;
@Parent
@Index
@ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
Ref<Student> studentRef;
public Long getId() {
return id;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public String getWebsafeKey() {
return Key.create(studentRef.getKey(), Attendance.class, id).getString();
}
}
Студенческая модель:
@Entity
public class Student {
@Id
Long id;
@Index
String name;
String student_id;
Long mobile_number;
String email;
@Index
@ApiResourceProperty(ignored = AnnotationBoolean.TRUE)
List<Ref<Shift>> shiftRef = new ArrayList<Ref<Shift>>();
public Long getId() {
return id;
}
public String getStudent_id() {
return student_id;
}
public void setStudent_id(String student_id) {
this.student_id = student_id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Long getMobile_number() {
return mobile_number;
}
public void setMobile_number(Long mobile_number) {
this.mobile_number = mobile_number;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getWebsafeKey() {
return Key.create(Student.class, id).getString();
}
}
Это, как я вставляя объект посещаемости в хранилище данных:
Key<Student> studentKey = Key.create(student_web_safe_key);
Date date = new Date();
date.setTime(System.currentTimeMillis());
attendance.setDate(date);
attendance.studentRef = Ref.create(studentKey);
ofy().save().entity(attendance).now();
Вопросы:
выше магазин запрос дата в хранилище данных в формате: 2016-06-15 (18: 01: 18,845) IST
Но когда я получить тот же объект без указания своего родителя, то его дает мне date as: "date": "2016-06-15T12: 31: 18.845Z". пожалуйста, объясните это?Я могу хранить посещаемость, соответствует каждому учащемуся, а также может получить все посещаемость студента. , но как получить доступ учащихся к указанной дате или диапазону дат? Я попробовал запрос на удар: Запрос запроса = ofy(). Load(). Type (Attendance.class) .ancestor (studentKey) .filter ("date =", date);
, но это дает мне следующее исключение:
com.google.api.client.googleapis.json.GoogleJsonResponseException:
503 Service Unavailable
{
"code": 503,
"errors": [
{
"domain": "global",
"message": "com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. recommended index is:\n- kind: Attendance\n ancestor: yes\n properties:\n - name: date\n\nThe suggested index for this query is:\n <datastore-index kind=\"Attendance\" ancestor=\"true\" source=\"manual\">\n <property name=\"date\" direction=\"asc\"/>\n </datastore-index>\n\n",
"reason": "backendError"
}
],
"message": "com.google.appengine.api.datastore.DatastoreNeedIndexException: no matching index found. recommended index is:\n- kind: Attendance\n ancestor: yes\n properties:\n - name: date\n\nThe suggested index for this query is:\n <datastore-index kind=\"Attendance\" ancestor=\"true\" source=\"manual\">\n <property name=\"date\" direction=\"asc\"/>\n </datastore-index>\n\n"
}
спасибо за комментарий @konqi ... Я ищу много, но я не нашел хранилище-indexes.xml подаст андроид студию. не могли бы вы рассказать мне, где этот файл находится в студии Android? – Baqir
'datastore-indexes.xml' на самом деле является ссылкой. Щелкните по нему, и вы обнаружите, что файл должен находиться в папке WEB-INF, там же, где находятся ваши web.xml и appengine-web.xml. – konqi
где эта ссылка расположена в студии android? – Baqir