2011-02-01 4 views
0

Jetez un coup d'œil au premier exemple de http://code.google.com/intl/sv-SE/appengine/docs/java/datastore/jdo/relationships.html (Relations univoques possédées).Relations JDO de Google App Engine (Java)

Je ne comprends pas une chose.
Si j'obtiens un employé de mon PersistanceManager, aurai-je le contactInfo en même temps, ou obtiendra-t-il le ContactInfo quand j'essaye de l'employer?

Si cela arrive en même temps, qu'en est-il des relations un-à-plusieurs possédées? Pour faire un exemple, disons que Employee a une liste contenant 100 ContactInfos.
Cela signifie-t-il que je recevrai tous les 100 ContactInfos quand j'aurai mon employé?

Merci
// F

Répondre

3

Par défaut, vous ne recevrez pas les données de l'enfant lorsque vous chargez les données parent. Cependant, si vous essayez d'accéder à l'enfant, il sera chargé à ce moment-là. Ceci est appelé chargement paresseux. Une remarque importante est qu'une fois que vous avez fermé la transaction JDO si vous essayez d'accéder à une propriété paresseusement chargée, vous obtiendrez une exception (puisque l'entité est maintenant détachée).

Vous pouvez configurer le chargement rapide sur une entité à l'aide de JDO récupérer les groupes. Le chargement anticipé charge toutes les données enfants lorsque vous chargez le parent. Ceci est utile si vous devez accéder à la propriété après une transaction ou si vous devez envoyer l'entité via le réseau à un client.

Lecture recommandée:

Fetch Groups

JDO Layer Design

+0

Mieux vaut ne pas se référer à ces pages, car ils sont pour JPOX qui ont cessé d'exister en 2008. Mieux vaut passer par http: //www.datanucleus .org/products/accessplatform_1_1/puisque c'est ce que vous utilisez – DataNucleus

+0

@DataNucleus: Le lien dans votre commentaire est également cassé. J'essaie d'aller chercher ardemment des enfants travaillant avec DataNucleus/JDO/MySQL en utilisant un FetchGroup et 'PersistenceManager.newQuery()'. Le chargement paresseux fonctionne donc je sais que ma relation est correcte. Mais quand j'essaye de charger, je n'ai pas d'enfants. Je cherche juste des docs avec des exemples. Si vous pouviez mettre à jour le lien, ce serait génial. – Asaph

+0

Ce n'était pas quand le commentaire a été fait, mais malheureusement GAE est toujours coincé sur des versions anciennes. Il suffit d'utiliser http://www.datanucleus.org et de naviguer à partir de là – DataNucleus

Questions connexes