Я использую данные 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. Если я сначала сохраняю объект устройства и устанавливаю объект пользователя, я работаю нормально, но я хочу сохранить только объект пользователя, и он автоматически сохранит объект устройства.

Это происходит потому, что спящий режим не может получить идентификатор, поскольку он еще не создан, поэтому вам нужно сначала сохранить устройство в БД, а затем установить его в пользовательский объект.
Что-то вроде ниже.
B b = new B();
mongoOperations.save(b);
A a = new A();
a.setB(b)
mongoOperations.save(a);
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.
Прочтите, пожалуйста, ниже документ;
невозможно сохранить объект пользователя, и объект устройства должен сохраняться автоматически