Зачем вам «хранить экземпляры класса в базе данных как сущности»? - PullRequest
2 голосов
/ 01 мая 2009

Я пытаюсь понять строку из API хранилища данных Google , которая говорит:

JDO использует аннотации к классам Java описать, как экземпляры класса хранятся в хранилище данных как сущности, и как сущности воссозданы как экземпляры при получении из хранилища данных.

Я уверен, что это очень простой вопрос для большинства людей. Но я не понимаю, почему объект класса должен храниться в базе данных, а затем извлекаться. Почему бы вместо этого не определить, как вы хотите, чтобы хранилище данных выглядело для вашего приложения, и хранить только релевантные данные из свойств вашего класса по мере необходимости, вместо того, чтобы хранить весь класс или всегда сохранять одни и те же свойства повторно? Экземпляр класса содержит все виды информации, которая, как мне кажется, не обязательно должна быть в базе данных - методы, переменные класса, переменные экземпляра - мы пишем эти вещи в нашем исходном коде и нам не нужно воспроизводить это в базе данных - нам нужны только определенные релевантные данные, над которыми работает класс, для хранения. Правильно? Может быть, я не понимаю, что подразумевается под цитируемым утверждением. Пожалуйста, поправьте меня, если я неправильно понял.

Ответы [ 2 ]

2 голосов
/ 01 мая 2009

Google Datastore не является стандартной реляционной базой данных, такой как SQL Server или Oracle. Объекты хранятся на основе их определения, а не традиционного метода создания схемы, а затем сопоставления объекта со схемой. Я не думаю, что частные члены или методы хранятся вместе с данными, поэтому не похоже, что весь объект, включая методы, сериализуется в хранилище данных.

2 голосов
/ 01 мая 2009

Почему бы вместо этого не определить, как вы хотите, чтобы хранилище данных выглядело для вашего приложения, и хранить только релевантные данные из свойств вашего класса по мере необходимости, вместо того, чтобы хранить весь класс или всегда сохранять одни и те же свойства повторно?

Это именно то, что на самом деле означает то, что вы цитировали:

JDO использует аннотации к классам Java для описания того, как экземпляры класса хранятся в хранилище данных как объекты, и как объекты воссоздаются как экземпляры при извлечении из хранилища данных.

Вы используете аннотации, чтобы сказать «сохранить поле X», «игнорировать поле Y» и т. Д.

...