вторник, 19 мая 2009 г.

ORM. Введение и основные концепции

Привыкли мы, что знания приходят "извне" в уже разжеванном виде. Но это скучно до жути, хотя и продуктивно. Предлагаю тем, кто не знаком с аббревиатурой ORM самим придумать этот самый ORM! Зачем же нужен ORM..?

Итак, мои наводящие вопросы:
  1. У вас есть класс с переменными. Вам нужно этот класс сохранить в БД для дальнейшего считываения. Ваши действия, как это можно сделать?
  2. Допустим, вы додумались, как вам его сохранять. Теперь подумайте вот над чем: каким образом вы узнаете, что сохраненная запись относится именно к определенному классу? Какую информацию нужно знать, чтобы определить "вот эта запись относится точно к такому классу"?
  3. Так... неужели вы и до этого додумались? Тогда вопрос хитрее: у вас есть иерархия классов, каким образом вы будете её сохранять в БД?
  4. Вопрос ещё хитрее! У вас есть разветвленная иерархия классов. Это когда от одного класса наследуется несколько других классов, как вы будете их сохранять в БД? Каким образом вы отличите один подкласс от другого в БД? А сможете ли вы распознать класс-предок?
  5. Предложите несколько вариантов хранения иерархии классов в БД. Подумайте какие у них достоинства и недостатки. Скажу, что есть 3 основных, которые уже могут комбинироваться.
  6. Так, если вы до этого на все вопросы ответили и считаете, что правы, то подумайте каким образом вы бы сохранили коллекцию типа Set в БД? То есть у каждого класса есть переменная, типа Set. И у каждого она может быть своя.
  7. А типа List? Учтите, что в листе важен порядок следования элементов!
  8. Додумались..? Хм... Не верю! :) Хорошо, тогда ещё вопрос: подумайте, как можно сохранить в БД коллекцию типа Map.
  9. А теперь идите скачивайте Hibernate и мануал к нему... там ничего нового :)
Это шутка конечно, что "там ничего нового". Там действительно много нового и интересного, порой совсем непонятного...

Комментариев нет:

Отправить комментарий