Встраиваемые объекты MongoDB не имеют идентификатора (нулевое значение)

У меня вопрос по MongoDB с Spring Data. У меня есть эти классы домена:

@Document
public class Deal  {
    @Id
    private ObjectId _id;
    private Location location;
    private User user;
    private String description;
    private String title;
    private String price;
    private boolean approved;
    private Date expirationDate;
    private Date publishedDate;
}

@Document
public class Location {
    @Id
    private ObjectId _id;
    private Double latitude;
    private Double longitude;
    private String country;
    private String street;
    private String zip;
}

@Document
public class User {
    @Id
    private ObjectId _id;
    private String email;
    private String password;
    private String profile_image_url;
    private Collection<Deal> deals = new ArrayList<Deal>();
}

С этими доменами я могу успешно CRUD. Есть всего лишь одна проблема. При сохранении пользователя с предложениями для сделок и местоположения при сохранении их в MongoDB устанавливается значение _id, равное нулю. Почему & # xB4; t MongoDB может генерировать уникальные идентификаторы для внедренных объектов?

Результат после сохранения Пользователя с одной сделкой:

{ "_id" : ObjectId( "4fed0591d17011868cf9c982" ),
  "_class" : "User",
  "email" : "[email protected]",
  "password" : "mimi",
  "deals" : [ 
    { "_id" : null,
      "location" : { "_id" : null,
        "latitude" : 2.22,
        "longitude" : 3.23445,
        "country" : "Denmark",
        "street" : "Denmark road 77",
        "zip" : "2933" },
      "description" : "The new Nexus 7 Tablet. A 7 inch tablet from Google.",
      "title" : "Nexus 7",
      "price" : "1300",
      "approved" : false,
      "expirationDate" : Date( 1343512800000 ),
      "publishedDate" : Date( 1340933521374 ) } ] }

Как видно из результата, идентификатор сделки и местоположения имеет значение NULL.

Ответы на вопрос(4)

Ваш ответ на вопрос