J'ai omis du code (déclarations de package, importations, autres champs) pour la shortness. J'ai ici simple relation un-à-plusieurs. Ça a bien fonctionné jusqu'à ce moment.Relation un-à-plusieurs. Sélectionner des objets du magasin de données
@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
class Restaurant implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Key id
@Persistent(mappedBy = "restaurant")
List<RestaurantAddress> addresses = new ArrayList<RestaurantAddress>()
}
// - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - = - =
@PersistenceCapable(identityType = IdentityType.APPLICATION,
detachable="true")
class RestaurantAddress implements Serializable {
@PrimaryKey
@Persistent(valueStrategy = IdGeneratorStrategy.IDENTITY)
Key id
@Persistent
Restaurant restaurant
}
maintenant, je doivent obtenir (choisir) tous les restaurants de DB:
def getRestaurantsToExport(final String dst, final int count) {
String field = restaurantExportFields[dst]
return transactionExecute() { PersistenceManager pm ->
Query q = pm.newQuery(Restaurant.class)
q.filter = "$field == null"
q.setRange(0, count)
return q.execute()
}
}
mais il y a le problème - requête me donne 12 restaurants (comme dans DB), mais tous les restaurants a 0 Adresse mais Datastore tous les restaurants a minimum 2 ajouter resses.
Avez-vous le même problème ou connaît la solution? Êtes-vous sûr que les adresses ne sont pas chargées paresseusement?
Avez-vous un lien vers la/les discussion (s) relative (s) à ce sujet du groupe google? – pkaeding