Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
grails、mongodb gorm、空嵌入对象_Mongodb_Grails_Gorm_Gorm Mongodb - Fatal编程技术网

grails、mongodb gorm、空嵌入对象

grails、mongodb gorm、空嵌入对象,mongodb,grails,gorm,gorm-mongodb,Mongodb,Grails,Gorm,Gorm Mongodb,我有两个简单的域类: class Isa95EquipmentSpecification { String equipmentClass String equipment String description Float quantity String quantityUOM List<Isa95EquipmentSpecificationProperty> equipmentSpecificationProperties

我有两个简单的域类:

class Isa95EquipmentSpecification {

    String equipmentClass
    String equipment
    String description
    Float quantity
    String quantityUOM
    List<Isa95EquipmentSpecificationProperty> equipmentSpecificationProperties

    static embedded = ['equipmentSpecificationProperties']

    static constraints = {
        equipment nullable: true, validator: {val, obj -> if (null == val && null ==    obj.equipmentClass) return ['bothNullable']}
        equipmentClass nullable: true, validator: {val, obj -> if (null == val && null == obj.equipment) return ['bothNullable']}
        description nullable: true
        quantity nullable: true
        quantityUOM nullable: true  
    }
}
我希望通过嵌入属性来构建一个合成文档,我可以在父级上运行save()操作来保存它,但它不起作用

我尝试在grails控制台上运行:

    def prop1 = new isa95.productdefinition.Isa95EquipmentSpecificationProperty(name: 'prop-1', value: 'mad', valueUOM: '-')
def prop2 = new isa95.productdefinition.Isa95EquipmentSpecificationProperty(name: 'prop-2', value: 12.32, valueUOM: 'kilograms')
def spec = new isa95.productdefinition.Isa95EquipmentSpecification(equipment: '41500', description: 'eq-test', equipmentSpecificationProperties: [prop1, prop2])
spec.save(failOnError: true)
脚本运行正确,但在数据库中我发现了这一点。我希望找到使用嵌套列表填充的EquipmentSpecificationProperties:

{ "_id" : NumberLong(9), "description" : "eq-test", "equipment" : "14500", "equipmentSpecificationProperties" : [ null, null ], "version" : 0 }

指定列表类型:

List<Isa95EquipmentSpecificationProperty> equipmentSpecificationProperties
列出设备规格属性

我想从您的
ISA95设备规范中删除
有许多
class@injecteer我删除了
hasMany
,但得到了一些结果
“equipmentSpecificationProperties”:[null,null]
这让我想到,这些对象正在作为子文档持久化。如果我调用
spec.save()
prop1/prop2未持久化,您应该能够在mongo浏览器中看到equipmentSpecificationProperties数组和一些元素。如果我明确调用
prop1.save()
prop2.save()
,它们将存储在Isa95EquipmentSpecificationProperty集合中。在这两种情况下,我都能找到
“equipmentSpecificationProperties”:[null,null]
。我使用MongoShell查询mongodb,我希望在EquipmentSpecificationProperties中至少找到一些引用否,您不应该调用
prop.save()
。您所说的
是什么意思在设备规格属性中至少找到一些参考资料?不应该有任何引用,道具将直接保存为子文档
List<Isa95EquipmentSpecificationProperty> equipmentSpecificationProperties