Używam JPA (Hibernate jako mój dostawca JPA). Naprawdę staram się unikać szczegółów dotyczących hibernacji i korzystać ze specyfikacji JPA. Mam funkcję, która inicjuje leniwe byty. Niestety, używa specyficznych funkcji Hibernate. To jest moja funkcja:Standardowa metoda JPA do inicjowania lazy entity
private T initializeAndUnproxy(T entity) {
if (entity == null) {
throw new
NullPointerException("Entity passed for initialization is null");
}
Hibernate.initialize(entity);
if (entity instanceof HibernateProxy) {
entity = (T) ((HibernateProxy) entity).getHibernateLazyInitializer().getImplementation();
}
return entity;
}
Czy istnieje jakiś czysty sposób JPA do inicjowania podmiotów?
Odnośnie ostatniego zdania: nigdy go nie używałem, ale co z wykorzystaniem Entitygraphs do pobierania pełnych elementów (https://docs.oracle.com/javaee/7/api/javax/persistence/EntityGraph.html)? Czy nie byłoby możliwe pobranie wykresu encji obiektu i dodanie do niego wszystkich leniwych właściwości jego metamodelu jako AttributeNodes (a następnie pobranie go)? –