Я новичок в Grails & GORM, так что это может быть быстрый вопрос. В настоящее время мы рассматриваем возможность использования поддержки GORM Монго, и у меня есть несколько проблем, связанных с существующими данными сбора. Я в основном хочу отобразить иерархическую структуру объектов, в которой мой объект "Торговец" имеет ссылку на другого родительского торговца. Структура BSON довольно проста, т.е.
{
name: "name",
parent_id: ObjectId("[Object Id ref]")
}
В моей модели я попытался отобразить это соотношение следующим образом:
class Merchant {
ObjectId id
String name
Merchant parent
static belongsTo = [parent: Merchant]
static mappedBy = [parent: "parentId"]
static mapping = {
collection "merchants"
}
static constraints = {
}
}
Это привело к следующему BSON:
{
"_id" : ObjectId("4ea6be91ce5f56cd49f43ab8"),
"name" : "where will you g",
"version" : NumberLong(1),
"parent" : {
"$ref" : "merchants",
"$id" : ObjectId("4ea6be91ce5f56cd49f43ab8")
}
}
Это имеет две проблемы, а именно:
- Имя родительского торгового поля "parent", а не "parent_id", что необходимо.
- Значение родительского поля имеет дополнительную метаинформацию, кроме идентификатора в т. Е. $ Ref: "merchants".
Есть ли в любом случае я могу сохранить нашу существующую структуру BSON и по-прежнему иметь богатое сопоставление объектов.
Ура, Крис.