J'ai une application Spring 3 + JPA 2.0. Dans mon Quelqu'un peut-il aider. L'objet est utilisé pour les opérations AJAX. Si les propriétés sont des proxies, je ne peux pas l'envoyer comme JSON P> @Controller Code> J'ai besoin d'un objet initialisé, mais j'ai des procurations, je dois pouvoir l'initialiser de manière programmatique. J'ai besoin de fonctionnalité similaire à org.hibernate.hibernate.Imitialize (objet) code>. p>
3 Réponses :
Aucune option JPA à ma connaissance. Vous devez utiliser En fait, lorsque j'ai examiné la mise en œuvre de Hibernate, les collections paresseuses semblent être initialisées dans de nombreux cas que l'on ne s'attendait pas. Comme hibernate.initialiser (..) code>. p>
EntityManager.Contains (..) code> et persistance.getpersistvereutil (). Is chargé (...) code>. Essayez-les, mais je ne pense pas que vous devriez compter sur ces détails de mise en œuvre. P>
Oui merci, j'espère que cela aurait pu être le cas. Je ne voulais pas créer d'objets supplémentaires, puis envoyer cela à la vue. Depuis que nous sommes toujours tôt dans le projet, nous avons décidé de passer à hibernation car les raisons jpa ne tenaient pas :). Maintenant, pour tous les utilisateurs Hibernate, utilisez simplement hibernate.initialisation (..) code>
Nous faisons une chose similaire dans notre application et nous avons trouvé utile de diviser nos objets d'entité de base de données et d'avoir un autre groupe de classes pour la sortie JSON. P>
Si vous utilisez un framework JSON qui inspecte simplement votre objet et que vous demandez un JSON pour chaque propriété de l'objet, puis de disposer d'objets tels que: P>
Personnentity - Classe gérée par JPA et PersonjsonOutput - Classe spécialement conçue pour la sortie JSON P>
Peut être plus sûr à long terme. Cela vous permet d'avoir des modifications de base de données qui ne sont pas automatiquement reflétées dans votre service JSON, vous souhaiterez peut-être une version de votre service JSON plutôt que de casser de anciennes versions dès que votre entité de base de données change. P>
Cela vous donne également plus de contrôle de votre sortie JSON en termes de formats de date ou de forçage dans la base de données à des chaînes dans votre JSON, etc. P>
Cette réponse dépend vraiment de la manière dont vous générez votre JSON, mais cela ressemble à votre bibliothèque fait une introspection. P>
Je sais qu'il est tard et que la réponse est acceptée, mais une autre voie JPA standard consiste à appeler la méthode Taille () de la liste que vous souhaitez initialiser avant de renvoyer l'objet à partir du DAO:
Object.getList().size();