Мой вопрос касается EntityManager.getReference. Учитывая, что я нахожусь в одном сеансе JPA, могу ли я быть уверенным, что для двух вызовов EntityManager.getReference для одного и того же объекта и одного и того же первичного ключа я всегда получаю один и тот же экземпляр объекта java? Для двух разных сеансов я подозреваю, что получаю два разных экземпляра Java-объектов - действительно ли это так?EntityManager.getReference всегда возвращает один и тот же экземпляр внутри сеанса?
Мне интересно знать общее правило, а не то, как работает какая-либо конкретная реализация. Определяется ли это спецификацией или нет? (Я не смог сам это выяснить).
Person p1 = EntityManager.getReference(Person.class, 1L);
Person p2 = EntityManager.getReference(Person.class, 1L);
if (p1 == p2) {
System.out.println("SAME");
} else {
System.out.println("DIFF");
}
Возможно, это поможет: http: // stackoverflow.com/questions/1607532/when-to-use-entitymanager-find-vs-entitymanager-getreference – JMelnik