J'ai une requête:Comment utiliser le chargement de la propriété paresseuse avec l'essentiel de GlassFish + toplink
select p from Product p
Ce qui me donne les résultats que j'attends, mais l'une des colonnes (appelons-le massiveDescription
) est grand, et depuis J'interroge la liste complète des produits que je veux exclure.
J'ai ajouté @Basic(fetch=FetchType.LAZY)
à getMassiveDescription()
mais cela n'a fait aucune différence (le sql généré inclut toujours toutes les colonnes). J'utilise la lentille de verre à la sortie de la boîte, et elle utilise les éléments essentiels du toplink. Je pensais qu'il y avait peut-être quelque chose que je devais faire pour configurer l'agent, donc j'ai essayé d'ajouter -javaagent:/path/to/toplink-essentials-agent.jar
dans les options JVM via l'interface web de glassfish. Puis-je obtenir une exception:
java.lang.NoClassDefFoundError: javax/transaction/Synchronization
at ...
Je me dis que je dois ajouter jta.jar
à la boîte de suffixe classpath dans l'interface Web GlassFish. Cela me donne une exception différente:
java.lang.NoClassDefFoundError: oracle/toplink/essentials/transaction/JTASynchronizationListener
at oracle.toplink.essentials.transaction.JTATransactionController.<init>...
Alors maintenant, je suis à la recherche de bocaux. J'ajoute toplink-essentials.jar
au classpath de la même manière, mais j'ai toujours la même exception.
J'ai quelques questions:
- Est GlassFish censé soutenir l'amélioration de bytecode pour le chargement tardif des propriétés de la boîte?
- Sinon, ai-je manqué la bonne façon de le configurer?
- J'ai lu que la façon "recommandée" d'y parvenir est d'utiliser un projet pour sélectionner seulement une partie de l'entité dans la requête. J'aime mieux ça, mais je ne trouve aucune documentation sur la façon de le faire. Échange
select p
pourselect p.id, p.name, ...
me donne des erreurs étranges - mais je devais seulement deviner la syntaxe de toute façon.
Draemon, passer de TLE à Eclipselink est super facile, et vous ne le regretterez pas! – fvu
Pas vraiment. GF a craché des messages assez confus pour commencer. Problèmes de classe et de politique (dont certains ne sont toujours pas triés). Bien sûr, GF3 n'a pas ce problème, mais je ne voulais pas changer. – Draemon