2009-08-19 7 views
0

Je travaille sur une application qui utilise Hibernate. Quand l'objet est renvoyé d'hibernate, ce n'est plus un pojo ... il y a quelque chose comme cglibenhancer attaché. à cause de cela je ne peux pas faire d'opérations dessus. j'ai besoin de le convertir en un java poja à nouveau. pour cela j'utilise hibernatebeanreplicator. ce qu'il fait est que si la classe avait cglibenhancer attaché à elle .. il rend l'objet nul. Le problème vient quand je suis en train d'aller chercher une ou deux propriétés de cet objet et que je veux les utiliser, mais cos la classe a cglibenhancer attaché, cela le rend nul .. Je veux que seules les propriétés qui ne sont pas récupérées soient mae null. permettez-moi de rendre le scénario plus clair avec un exemple.Hibernate supprimant les données proxy

J'ai une classe utilisateur

class User { 
    long id; 
    String name; 
    Address address; 
} 

J'ai une autre adresse de classe

class Address { 
    long addrId; 
    String streetName; 
    String city; 
} 

Dans mon Maping pour la classe utilisateur, i stocker la addrId comme une clé étrangère. Maintenant, je veux récupérer les données de classe d'utilisateur + l'identifiant d'adresse seulement. mais parce que je n'ai pas chargé la classe d'adresse complètement et il attache cglibenhancer à elle et mon beanreplicator le rend nul.

Existe-t-il un moyen d'extraire l'ID de données de classe d'utilisateurs + l'adresse et de rendre nullNom et cityName.

Merci à l'avance,

Rima Desai

Répondre

0

Je ne pense pas que vous pouvez faire ce que vous voulez, mais je ne vois pas pourquoi vous voudriez que ce soit.

Si vous allez chercher un Person « Address s, et pour une raison quelconque Hibernate décide que le Address devrait être un proxy CGLIB, vous pouvez chercher le Address » ID sans elle va frapper la base de données. Mais bien sûr, si vous essayez d'aller chercher la rue ou la ville, vous devrez aller à la base de données pour récupérer ces données.

+0

Merci Adam pour votre réponse. Je veux l'id d'adresse pour l'employer furter dans le code. J'ai besoin de l'information de la rue et de la ville plus tard ou je ne pourrais pas en avoir besoin. Hibernate charge l'ID mais mon réplicateur de beans le rend nul car l'adresse de la classe n'est pas complètement chargée. J'ai besoin d'un moyen où les variables chargées ne sont pas définies sur null. –

Questions connexes