5
mam lazy @ManyToOne
kolumna zakupu zdefiniowany jako:hibernacji @ManyToOne (pobranie = FetchType.LAZY) ignorowane
@ManyToOne(fetch = FetchType.LAZY)
Sale sale = null
Jednak, kiedy obciążenia jednostki db, zostaje załadowana bezpośrednio:
Purchase purchase = em.find(Purchase.class, id);
PersistenceUnitUtil unitUtil = em
.getEntityManagerFactory()
.getPersistenceUnitUtil();
System.err.println(unitUtil.isLoaded(purchase, "sale"));
To powróci true
, mimo że pole nie powinno być jeszcze załadowane.
Co robię źle?
(hibernacji 4.3.11.Final)
Co mogę zrobić, aby temu zapobiec? –
Nie tak wiele opcji, jakie znam. Jednym ze sposobów jest "oprzyrządowanie bajtów czasu budowania". http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-fetching-lazyproperties – kan
Dlaczego więc ta funkcja jest dostępna nawet wtedy, gdy nie może nigdy nie działać? Próbowałem nawet 'nullable = false' bez żadnego efektu. –