Pourquoi devriez-vous & # 8220; stocker des instances de la classe dans la base de données en tant qu'entités & # 8221 ;?

StackOverflow https://stackoverflow.com/questions/808815

Question

J'essaie de comprendre une ligne de API Google Datastore. qui dit:

  

JDO utilise des annotations sur les classes Java   décrire comment des instances de la classe   sont stockés dans le magasin de données en tant que   entités, et comment les entités sont   recréé en tant qu'instances lors de l'extraction   depuis le magasin de données.

Je suis sûr que c'est une question très basique pour la plupart des gens. Mais je ne comprends pas pourquoi l'objet de classe doit être stocké dans la base de données et récupéré ultérieurement. Pourquoi ne pas définir ce que vous voulez que le magasin de données ressemble à votre application et ne stocker que les données pertinentes de vos propriétés de classe, au lieu de stocker la classe entière ou de toujours stocker les mêmes propriétés à plusieurs reprises? L'instance de la classe contient toutes sortes d'informations qui, il me semble, n'ont pas besoin d'être dans la base de données - méthodes, variables de classe, variables d'instance - nous les écrivons dans notre code source et nous n'avons pas besoin de les reproduire. dans la base de données - nous n'avons besoin que de certaines données pertinentes sur lesquelles la classe est exploitée pour être stockées. Droite? Peut-être que je ne comprends pas ce que l'on entend par la déclaration citée. S'il vous plaît, corrigez-moi si j'ai mal compris.

Était-ce utile?

La solution

Le magasin de données Google n'est pas une base de données relationnelle standard telle que SQL Server ou Oracle. Les entités sont stockées en fonction de leur définition, plutôt que de la méthode traditionnelle consistant à créer un schéma en premier lieu, puis à mapper un objet sur le schéma. Je ne pense pas que les membres privés ou les méthodes soient stockés avec les données. Ce n'est donc pas comme si l'objet entier, y compris les méthodes, était sérialisé dans le magasin de données.

Autres conseils

  

Pourquoi ne pas définir ce que vous voulez que le magasin de données ressemble à votre application et ne stocker que les données pertinentes de vos propriétés de classe au besoin au lieu de stocker la classe entière ou de toujours stocker les mêmes propriétés à plusieurs reprises?

C’est exactement ce que vous avez cité en réalité:

  

JDO utilise des annotations sur les classes Java pour décrire comment les instances de la classe sont stockées dans le magasin de données en tant qu'entités et comment celles-ci sont recréées en tant qu'instances lorsqu'elles sont extraites du magasin de données.

Vous utilisez des annotations pour indiquer "stocker le champ X", "ignorer le champ Y", etc.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top