2017-08-24 34 views
5

Ben Satın bir yapay @ManyToOne kolon tanımlanmış olması göz ardı (= FetchType.LAZY getirme)hazırda @ManyToOne

Purchase purchase = em.find(Purchase.class, id); 
PersistenceUnitUtil unitUtil = em 
     .getEntityManagerFactory() 
     .getPersistenceUnitUtil(); 
System.err.println(unitUtil.isLoaded(purchase, "sale")); 

Bu alan henüz yüklenmemiş olsa bile true döndürecektir.

Neyi yanlış yapıyorum?

(hazırda 4.3.11.Final)

cevap

1

bu null alanı olduğu için. Hazırda bekletme, değerin db'de bulunup bulunmadığını bilmeyebilir, bu nedenle db'yi alana null veya değer atamak için sorgulamalıdır.

+0

Bunu önlemek için ne yapabilirim? –

+0

Bildiğim kadar çok seçenek yok. Bir yol "buildtime bytecode instruments". http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/performance.html#performance-fetching-lazyproperties – kan

+0

Peki, bu işlev asla işe yaramayacağı zaman bile var mıdır? Hatta hiçbir şey yapmadan nullable = false'i denedim. –

İlgili konular