2009-10-13 9 views
0

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 pour select p.id, p.name, ... me donne des erreurs étranges - mais je devais seulement deviner la syntaxe de toute façon.

Répondre

0

Il s'avère que l'essentiel de toplink ne supporte pas cela. Eclipselink fait, on dirait que je suis en train de déplacer des ORM.

+0

Draemon, passer de TLE à Eclipselink est super facile, et vous ne le regretterez pas! – fvu

+0

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