-
Notifications
You must be signed in to change notification settings - Fork 199
Description
Original Reporter: benjaminjsanders
Environment: Grails 2.2.3
Version: 1.3.0.GA
Migrated From: http://jira.grails.org/browse/GPMONGODB-318
When attempting to create a domain object (say, Author) which has a HashMap<String,MyObject> the parent object (Author) saves to the database without the HashMap. To clarify, using the following code:
{code:borderStyle=solid}
class MyWrapperObject {
String name;
Map embeddedObjects;
static hasMany = [embeddedObjects: MyEmbeddedObject];
static embedded = ['embeddedObjects']
}
{code}
with the following bootstrap code:
{code:borderStyle=solid}
def init = { servletContext ->
def savedObject = new MyWrapperObject();
savedObject.name = "test1";
savedObject.embeddedObjects = new HashMap<String,MyEmbeddedObject>();
savedObject.embeddedObjects.put("embedded1", new MyEmbeddedObject("test1",1));
savedObject.embeddedObjects.put("embedded2", new MyEmbeddedObject("test2",2));
savedObject.embeddedObjects.put("embedded3", new MyEmbeddedObject("test3",3));
savedObject.save(flush:true);
System.out.println(savedObject.toString())
}
{code}
produces the following object in the database:
{code:borderStyle=solid}
{
_id: 1,
name: "test1",
version: 0
}
{code}
Interestingly, changing the parent object markup to:
{code:borderStyle=solid}
class MyWrapperObject {
String name;
Map embeddedObjects;
}
{code}
I get this object in the database:
{
_id: 2,
embeddedObjects: {
embedded1: null,
embedded2: null,
embedded3: null
},
name: "test1",
version: 0
}