Je dois sérialiser le résultat d'une requête jpql (ce qui signifie que je dois sérialiser tous les beans jpa). Je veux obtenir toutes les relations imbriquées (même si elles sont chargées paresseusement) afin que le client puisse désérialiser à l'autre extrémité sans avoir d'erreur. Y-a-t-il un moyen de faire ça?Comment puis-je sérialiser un bean jpa qui obtiendra également la relation de chargement paresseux?
Comment puis-je sérialiser un bean jpa qui obtiendra également la relation de chargement paresseux?
Répondre
Je pense que vos options sont soit:
- Utiliser le chargement Désireuse avant la sérialisation.
- Demandez au client de fusionner le bean désérialisé dans un EntityManager, puis de lire les chargeurs paresseux si nécessaire.
Pour # 1, Pouvez-vous forcer le chargement hâtif sur faire la requête: List results = em.createQuery (query) .getResultList(); ? Comment puis-je forcer tous les beans dans le résultat à être impatient de charger même si les beans n'ont pas spécifié ces relations comme (fetch = FetchType.EAGER)? –
Vous pouvez modifier les annotations pour être désireux d'utiliser la réflexion avant de faire la requête pour les moments où vous voulez sérialiser - laissez paresseux le reste du temps. Ou bien: après avoir fait la requête, lisez chaque collection de référence paresseuse pour forcer la lecture. Je ne pense pas qu'il soit possible de forcer la charge impatiente de la requête, vous devez modifier l'entité. Semble étrange que vous voulez sérialiser, mais utilisez le chargement paresseux - avez-vous des moments où vous voulez paresseux et les moments où impatient? Peut-être que la réflexion fonctionnerait pour vous? –
Le problème avec la déclaration de toute la charge ardente de la relation est que vous pouvez rencontrer des problèmes de dépassement de la taille maxium de rowsize car le chargement hâtif générera une seule jointure complexe. Donc, si vous avez beaucoup de beans et beaucoup de relations imbriquées, vous pouvez atteindre une erreur de limite maxium rowsize. C'est pourquoi la relation est par défaut paresseuse dans de nombreux cas. –
- 1. NHibernate: impossible de définir un chargement paresseux
- 2. JPA paresseux Hibernate utilisant SOAP
- 3. Chargement paresseux dans NHibernate
- 4. Chargement paresseux partiel
- 5. Relation bidirectionnelle dans JPA
- 6. GAE unowned relation JPA
- 7. JPA - Classe de bean entité inconnue
- 8. Chargement paresseux sur une collection d'objets
- 9. LINQ to SQL: chargement paresseux d'une association
- 10. Java JPA OneToMany - Relation "plusieurs" non rafraîchissante
- 11. Relations et chargement paresseux dans SubSonic 3.0
- 12. Accès aux entités agrégées sans chargement paresseux
- 13. Modification du chargement paresseux à l'exécution
- 14. Chargement paresseux des parties de pages de couture?
- 15. Relations de chargement paresseux dans Django (et autres MVC/ORM)
- 16. Comme les pagesflakes (Affichage de page incrémental OU chargement paresseux)?
- 17. Valeurs de chargement paresseux dans datable paginé en utilisant jquery
- 18. iPhone Dev - Où mettre le code de chargement paresseux
- 19. Chargement de données paresseux avec riche: dataTable et riche: dataTableScroller
- 20. Quelle est la bonne façon d'injecter une dépendance d'accès aux données pour un chargement paresseux?
- 21. NHibernate et chargement paresseux: comment obtenir seulement quelques lignes de la collection?
- 22. Comment sérialiser un message électronique?
- 23. ASP.NET MVC 1.0 et Castle ActiveRecord 2.0 Chargement paresseux
- 24. NHibernate one-to-many chargement paresseux quand déjà chargé
- 25. Comment XML sérialiser un 'Type'
- 26. Comment (xml) sérialiser un uri
- 27. doctrine orm: contournement du chargement paresseux et des enregistrements liés à la prélecture dans un getter
- 28. Mon approche du chargement paresseux est-elle défectueuse?
- 29. Chargement/mise en cache paresseux de résultats de requête SQL avec un modèle
- 30. Création d'un contrôle personnalisé qui est un bouton qui a également un Items et ItemsSource?
Voulez-vous sérialiser uniquement le bean lui-même sans tous ses 'voisins' paresseux? Alors, comment le client les désérialiserait-il? –
Non, je veux en fait avoir tous ses "voisins" paresseux. Donc le fait est que je veux obtenir tous les voisins, peu importe qu'ils soient paresseux ou connectés ou non. Je veux être en mesure d'appeler une méthode et de charger automatiquement tous les voisins connectés même s'ils sont connectés paresseux. –