Невозможно создать ссылку на объект с идентификатором NULL mongo hibernate-mongo и весенней загрузкой

Я использую данные Spring (весенняя загрузка) и mongodb. У меня есть эти двое сущности

@Document(collection = "users")     
   public class UserEntity {
      private String email;     
      @DBRef
      private DeviceEntity device;
     }

    @Document(collection = "device")
       public class DeviceEntity {
       private String name;
     }

and I am creating the first object of device then setting it to user 
entity. Now i will save user entity.



 DeviceEntity Device = new DeviceEntity();
 device.setName("demo");

 UserEntity user = new UserEntity();
 user.setEmail("[email protected]");
 user.setDevice( device );
 userRepo.save( user );

Тогда у меня такая ошибка:

"Cannot create a reference to an object with a NULL id.] with root cause org.springframework.data.mapping.model.MappingException: Cannot create a reference to an object with a NULL id mongo hibernate."

Может ли кто-нибудь объяснить, как хранить userentity с помощью deviceentity. Если я сначала сохраняю объект устройства и устанавливаю объект пользователя, я работаю нормально, но я хочу сохранить только объект пользователя, и он автоматически сохранит объект устройства.

Использование JavaScript и MongoDB
Использование JavaScript и MongoDB
Сегодня я собираюсь вкратце рассказать о прототипах в JavaScript, а также представить и объяснить вам работу с базой данных MongoDB.
8
0
3 556
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Это происходит потому, что спящий режим не может получить идентификатор, поскольку он еще не создан, поэтому вам нужно сначала сохранить устройство в БД, а затем установить его в пользовательский объект.

Что-то вроде ниже.

B b = new B();
mongoOperations.save(b);

A a = new A();
a.setB(b)
mongoOperations.save(a);

невозможно сохранить объект пользователя, и объект устройства должен сохраняться автоматически

Anuj Dhiman 21.08.2018 09:22

The mapping framework does not handle cascading saves. If you change an Account object that is referenced by a Person object, you must save the Account object separately. Calling save on the Person object does not automatically save the Account objects in the accounts property.

Прочтите, пожалуйста, ниже документ;

https://docs.spring.io/spring-data/mongodb/docs/2.1.4.RELEASE/reference/html/#mapping-usage-references

Другие вопросы по теме