Допущения: @ Id @ GeneratedValue (стратегии = GenerationType.IDENTITY)
Рассмотрим следующие реализации statusOfADao.getStatusOfAById (456):
1. возвращает объект "прокси" с установленным идентификатором:
return new StatusOfA(456);
2. возвращает сущность в новой транзакции:
EntityManager em = emf.createEntityManager();em.getTransaction().begin();
StatusOfA o = em.find (StatusOfA.class, 456); // em.getReference (StatusOfA.class, 456);
em.getTransaction () фиксации ().
возврат o;
3. возвращает отдельную сущность:
StatusOfA o = em.find(StatusOfA.class,456);//em.getReference(StatusOfA.class,456);
em.detached(o);
return o;
4. возвращает сериализованный десериализованный объект:
return ObjectCloner.deepCopy(em.find(StatusOfA.class,456));
5. возвращает прикрепленный объект:
return em.find(StatusOfA.class,456);
Выводы:
- Eclipselink обрабатывает только реализацию N5 как "ожидаемую".
- Hibernate обрабатывает все пять реализаций как «ожидаемые».
- Нет анализа поведения, совместимого со спецификацией jpa