2015-09-09 1 views
1

Я новичок в мозаике Spring Data. У меня есть документы, у которых есть одно имя FirstName, например John, но MiddleName и LastName отличаются.spring-data-mongo, как вернуть _id назад для сохраненных объектов из монго?

Кроме того, из пользовательского интерфейса некоторые студенты, заполняющие данные (подача данных через формы), которые также имеют имя FirstName, говорят, что снова и снова MiddleName и LastName будут разными.

Теперь, когда я сохраняю объект User (который имеет FirstName, MiddleName, LastName, Age, Sex etc..etc ..) в mongo, используя MongoTemplate. Мне нужно вернуть обратно «_id» (какой монго создать по умолчанию, если мы не предоставим его явно) каждого сохраненного объекта User.

Не могли бы вы привести любой пример/руководство? Пожалуйста помоги.

+0

Что вы пробовали? Что не работает? Сначала вы можете проверить справочную документацию. –

ответ

1

Если вы сохраняете шаблон mongo, ваш идентификатор объекта будет установлен после вставки (как писал Оливер Гирке) объекта, чтобы вы могли сделать это так.

//User object annotated with @Document 
User user = new User(String name); 
user.setWhatever(something); 
mongoTemplate.save(user); 
//now the user object should be populated with generated id; 
return user.getId(); 

, но вы можете использовать обычный CrudRepository и использовать его с

<mongo:repositories base-package="your.package" />

0

Данные Spring MongoDB автоматически заполнит свойство идентификатора вашего объекта домена сгенерированным значением идентификатора.

@Document 
class User { 

    ObjectId id; // by convention, use @Id if you want to use a different name 
    String firstname, lastname; 
    … 
} 

Если объект этого класса сохраняется с набором id собственности на null, объект будет иметь свойство установлено после того, как оно было сохранялось через MongoTempalte.

Все это также описано в reference documentation.

+0

Кажется, что не работает при сохранении карты вместо объекта, специфичного для домена. Или это? – johanneslink

Смежные вопросы