Абстрагирование от сущности toplink
От: kermed  
Дата: 16.10.09 14:03
Оценка:
Здравствуйте.

В своем проекте использую toplink. Используются автогенеренные сущности по схеме базы данных.
Проект в начальном состоянии и поэтому структура базы данных довольно часто меняется под нужды различных приложений.
Но та часть структуры, которая необходимо мне остается неизменной. Тем не менее, после изменения структуры базы генеренные сущности уже не могут описать ее. Следовательно требуется их перегенерация. Таким образом, мне нужно абстрагироваться от этих сущностей, работать не напрямую через них, а через адаптер. Toplink использую недавно, поэтому не знаю подводных камней.

Не могли бы вы мне посоветовать какой-то стандартный подход для решения этой проблемы?
Так же приветствуются отсылки к литературе.
Re: Абстрагирование от сущности toplink
От: GarryIV  
Дата: 16.10.09 14:29
Оценка:
Здравствуйте, kermed, Вы писали:

K>В своем проекте использую toplink. Используются автогенеренные сущности по схеме базы данных.

K>Проект в начальном состоянии и поэтому структура базы данных довольно часто меняется под нужды различных приложений.
K>Но та часть структуры, которая необходимо мне остается неизменной. Тем не менее, после изменения структуры базы генеренные сущности уже не могут описать ее. Следовательно требуется их перегенерация. Таким образом, мне нужно абстрагироваться от этих сущностей, работать не напрямую через них, а через адаптер. Toplink использую недавно, поэтому не знаю подводных камней.

K>Не могли бы вы мне посоветовать какой-то стандартный подход для решения этой проблемы?

K>Так же приветствуются отсылки к литературе.

1) Сгенерили сущности по БД и все — дальше руками, никаких перегенерить.
2) Те сущности которые не нужны — удалить. И не будет проблем с их изменением.
3) Топлинк сам себе адаптер но абстрагирует он от БД — в определенных границах конечно.
WBR, Igor Evgrafov
Re[2]: Абстрагирование от сущности toplink
От: kermed  
Дата: 20.10.09 12:34
Оценка:
GIV>1) Сгенерили сущности по БД и все — дальше руками, никаких перегенерить.
GIV>2) Те сущности которые не нужны — удалить. И не будет проблем с их изменением.
GIV>3) Топлинк сам себе адаптер но абстрагирует он от БД — в определенных границах конечно.

Я наверное неточно объяснил, чего я хочу.
Весь вопрос сводится к этому:
Можно ли наделять сущности управляющей логикой, или для этого целесообразно использовать классы-адаптеры?
Re[3]: Абстрагирование от сущности toplink
От: Blazkowicz Россия  
Дата: 20.10.09 13:22
Оценка:
Здравствуйте, kermed, Вы писали:

K>Можно ли наделять сущности управляющей логикой, или для этого целесообразно использовать классы-адаптеры?

Вам стоит терминологию хотя бы подтянуть. Что такое "управляющая логика"? Управляющая чем? Может имелось ввиду domain logic или business logic? Адаптер это сущность, которая позволяет совместить различные не совмещеные подсистемы. Например подружить два разных API.

К примеру, был себе такой ORM Toplink. И была такая себе спецификация JPA. Так вот чтобы использовать Toplink через JPA API существуют некие классы-адаптеры. Это пример адаптера. И какое отошение адептеры имеют к изначальному вопорсу не понятно вообще.

Если вас просто интересует типовая архитектура приложений, то вот здесь хорошо описано:
http://rsdn.ru/forum/design/2097068.aspx
Автор: IT
Дата: 06.09.06
Re[4]: Абстрагирование от сущности toplink
От: kermed  
Дата: 20.10.09 13:28
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Здравствуйте, kermed, Вы писали:


K>>Можно ли наделять сущности управляющей логикой, или для этого целесообразно использовать классы-адаптеры?

B>Вам стоит терминологию хотя бы подтянуть. Что такое "управляющая логика"? Управляющая чем? Может имелось ввиду domain logic или business logic? Адаптер это сущность, которая позволяет совместить различные не совмещеные подсистемы. Например подружить два разных API.

B>К примеру, был себе такой ORM Toplink. И была такая себе спецификация JPA. Так вот чтобы использовать Toplink через JPA API существуют некие классы-адаптеры. Это пример адаптера. И какое отошение адептеры имеют к изначальному вопорсу не понятно вообще.


B>Если вас просто интересует типовая архитектура приложений, то вот здесь хорошо описано:

B>http://rsdn.ru/forum/design/2097068.aspx
Автор: IT
Дата: 06.09.06


Спасибо, но я знаю что такое адаптер и для чего он используется. Вопрос был про бизнес-логику. И да, мне интересен архитектурный подход для работы с toplink.
Re[5]: Абстрагирование от сущности toplink
От: Blazkowicz Россия  
Дата: 20.10.09 14:00
Оценка:
Здравствуйте, kermed, Вы писали:

K>Спасибо, но я знаю что такое адаптер и для чего он используется.

Тогда что к чему адаптируем?

K>Вопрос был про бизнес-логику. И да, мне интересен архитектурный подход для работы с toplink.

Abstract DAO как и для любого другого persistence
Re[6]: Абстрагирование от сущности toplink
От: kermed  
Дата: 20.10.09 14:17
Оценка:
Здравствуйте, Blazkowicz, Вы писали:

B>Тогда что к чему адаптируем?


Имелась ввиду некая прослойка между сущностью и классами приложения. Хотя да, наверное терминология выбрана неверно.

B>Abstract DAO как и для любого другого persistence


За это спасибо, буду читать.
Re: Абстрагирование от сущности toplink
От: cvoronin Россия  
Дата: 20.10.09 16:10
Оценка:
K>Проект в начальном состоянии и поэтому структура базы данных довольно часто меняется под нужды различных приложений.
K>Но та часть структуры, которая необходимо мне остается неизменной. Тем не менее, после изменения структуры базы генеренные сущности уже не могут описать ее. Следовательно требуется их перегенерация. Таким образом, мне нужно абстрагироваться от этих сущностей, работать не напрямую через них, а через адаптер.

Если честно, я не очень понял, чем тут адаптер может помочь... Если у какой-то таблицы PK был из одного поля, а стал вдруг составным — то как адаптер такое изменение съадаптирует? Или два поля добавилось, а третьего не стало...
Или же изменения в датабазе сводятся к тому, что был CHAR2(10), а стал VARCHAR2(20)?
Re[7]: Абстрагирование от сущности toplink
От: Blazkowicz Россия  
Дата: 20.10.09 16:49
Оценка:
Здравствуйте, kermed, Вы писали:


B>>Abstract DAO как и для любого другого persistence

K>За это спасибо, буду читать.

http://java.sun.com/blueprints/corej2eepatterns/Patterns/index.html
Re[2]: Абстрагирование от сущности toplink
От: kermed  
Дата: 21.10.09 12:21
Оценка:
Здравствуйте, cvoronin, Вы писали:

K>>Проект в начальном состоянии и поэтому структура базы данных довольно часто меняется под нужды различных приложений.

K>>Но та часть структуры, которая необходимо мне остается неизменной. Тем не менее, после изменения структуры базы генеренные сущности уже не могут описать ее. Следовательно требуется их перегенерация. Таким образом, мне нужно абстрагироваться от этих сущностей, работать не напрямую через них, а через адаптер.

C>Если честно, я не очень понял, чем тут адаптер может помочь... Если у какой-то таблицы PK был из одного поля, а стал вдруг составным — то как адаптер такое изменение съадаптирует? Или два поля добавилось, а третьего не стало...

C>Или же изменения в датабазе сводятся к тому, что был CHAR2(10), а стал VARCHAR2(20)?


Все, спасибо. Мне уже помогли. Адаптер в этом смысле:
Essentially, the DAO acts as an adapter between the component and the data source.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.