Нет.Вы должны получить ребенка из базы данных.Но если вы используете session.load
вместо session.get
, он просто инициализирует прокси для фактического постоянного объекта, даже не выполняя SQL-запрос.Конечно, если сущность на самом деле не существует в базе данных, у вас будет исключение во время сброса (или если сущность выбирается какой-то другой частью кода позже в транзакции).
Child child = session.load(Child.class, idOfChild); // no SQL query here
Parent p = new Parent();
p.setChild(child);
session.persist(p);