Это зависит от того, как отображается ваша ассоциация.
Предполагая, что он сопоставлен через внешний ключ (от Person to Car) И вы уверены, что «новый» экземпляр автомобиля действительно существует, вы можете использовать метод Session.load()
, чтобы вернуть постоянный прокси нового Субъект автомобиля, затем установите его на Персоне и сохраните Персона. Автомобиль не должен быть загружен до тех пор, пока ассоциация не получена с нетерпением:
Person person = ...;
Car newCar = session.load(Car.class, newCarId);
person.setCar(newCar);
session.saveOrUpdate(person);
Если ваша ассоциация отображается с помощью первичных ключей, установка новой машины невозможна.
С другой стороны, человек-машина технически является отношением один-ко-многим (человек = владелец) или многими-ко-многим (человек = водитель), а не один-к-одному.