Привет всем, я новичок в Hibernate, просматривая документацию по спящему режиму, я наткнулся на это утверждение, в котором говорится, что «Два объекта не могут совместно использовать ссылку на один и тот же экземпляр коллекции», но когда я использую приведенный ниже код, ошибка не возникает все в порядке, и в спящем режиме сохраняются как сущности, так и соответствующие ссылки на коллекции в БД без каких-либо проблем, я что-то упустил, можно ли объяснить этот оператор и в каком сценарии он применим.
Entity1:
public class Person {
@Id
@GeneratedValue
private Long id;
@CreationTimestamp
private LocalDateTime date;
@ElementCollection
private List<String> phones = new ArrayList<>();
@ElementCollection
private Set<LocalDateTime> personOrderDates;
}
Entity2:
public class Home {
@Id
@GeneratedValue
private long id;
@ElementCollection
private List<String> homePhoneList;
}
Сохранение кода гибернации:
Person person1 = entityManager.find(Person.class, 48l);
Person person2 = entityManager.find(Person.class, 49l);
List<String> newPhoneList=new ArrayList();
newPhoneList.add("x");
newPhoneList.add("y");
newPhoneList.add("z");
person1.setPhones(newPhoneList);
person2.setPhones(newPhoneList);
Home home1=Home.builder().homePhoneList(newPhoneList).build();
entityManager.persist(home1);
entityManager.persist(person1);
entityManager.persist(person2);
здесь явно мы можем использовать одну и ту же ссылку на коллекцию между двумя экземплярами одного и того же объекта (Person), а также с совершенно разными Тип объекта (Дом), а также без каких-либо проблем. все три объекта сохраняются / обновляются в БД. что мне не хватает.