Lors de l'utilisation de la fonction de chargement paresseux d'Hibernate, certains objets chargés peuvent apparaître comme des proxys. Bien que le chargement différé préserve les performances, l'exportation de proxys vers les clients GWT peut poser un défi. Cet article explore une solution pour convertir des proxys en objets d'entité réels, en maintenant un chargement paresseux tout en facilitant une communication RPC transparente.
Hibernate n'offre aucune méthode de « matérialisation » directe. Cependant, une solution pratique existe :
public static <T> 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; }
Cette méthode effectue les étapes suivantes :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!