У меня есть эта простая модель:
abstract class Info {
ObjectId id
Date dateCreated
Date lastUpdated
}
class Question extends Info {
String title
String content
List<Answer> answers = []
static embedded = ['answers']
}
class Answer {
String content
}
При таком написании ответ встроен в вопрос (и идентификатор для ответа не сохраняется). Я хочу сохранить поля id, dateCreated и lastUpdated для каждого ответа. Итак, я пробую следующее:
class Answer extends Info {
String content
}
Когда я запускаю простой тестовый пример (сохраняю вопрос с 1 ответом), я получаю следующее:
> db.question.find()
{ "_id" : ObjectId("4ed81d47e4b0777d795ce3c4"), "answers" : [ { "content" : "its very
cool", "dateCreated" : null, "lastUpdated" : null, "version" : null } ], "content" :
"whats up with mongodb?", "dateCreated" : ISODate("2011-12-02T00:35:19.303Z"),
"lastUpdated" : ISODate("2011-12-02T00:35:19.303Z"), "title" : "first question",
"version" : 0 }
Здесь я заметил, что поля dateCreated и lastUpdate не поддерживаются Grails автоматически. Также было добавлено поле version, но оно также имеет значение null, но, что интересно, поле _id не создано (даже если Я определил id в классе Info).
Во втором сценарии я пробую следующее:
class Answer {
ObjectId id
String content
}
и я получаю следующий вывод:
> db.question.find()
{ "_id" : ObjectId("4ed81c30e4b076cb80ec947d"), "answers" : [ { "content" : "its very
cool" } ], "content" : "whats up with mongodb?", "dateCreated" : ISODate("2011-12-
02T00:30:40.233Z"), "lastUpdated" : ISODate("2011-12-02T00:30:40.233Z"), "title" :
"first question", "version" : 0 }
На этот раз id также не создается для встроенного документа. Любое объяснение для этих сценариев? Почему нет свойства id и почему dateCreated, lastUpdated и version являются ноль? Это предназначено для работы таким образом, или это ошибка?
Спасибо,