|
|
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
Добрый день! возник такой вот вопрос У нас есть web приложение, допустим есть и ejb часть , или это будет spring - тут не принципиально ! Одним словом есть компонент JEE архитектуры с некоторой бизнес логикой и контейнер ее исполнения (jboss , tomcat ,glassfish ). Просто хочется понять как можно реализовать такую вот схему : при первом старте приложения оно коннектится к базе (mysql , postgresql - от указанного в конфиге пользователя) и создает в новой базе таблицы , заполняет их стартовыми данными итд ... а вот при повторных запусках , когда такая задача уже не стоит - хочется ограничить права на создание таблиц и их удаление, и запускать приложение уже от пользователя который может только читать и писать в таблицы ... вопрос как указать в конфигурации что создает таблицы одни пользователь , а работает с данными уже другой ? обычно в конфиге указывается одни пользователь и его логин и пароль и все действия ведутся от него . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 15:52:45 |
|
||
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
1. Используйте JNDI DataSource, настраиваемый на сервере. Не используйте какие-то свои конфиги. Сделайте два DataSource для разных аккаунтов в базе. Один с правами менять структуру, другой - без. 2. Используйте liquibase, черед один DataSource, а само JEE приложение пусть работает через другой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 15:57:15 |
|
||
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
Blazkowicz1. Используйте JNDI DataSource, настраиваемый на сервере. Не используйте какие-то свои конфиги. Сделайте два DataSource для разных аккаунтов в базе. Один с правами менять структуру, другой - без. 2. Используйте liquibase, черед один DataSource, а само JEE приложение пусть работает через другой. Про идею с двумя DataSource я думал. но вот простой пример чтобы долго не писать код - есть пример в netbeans - WebJpa - там есть persistence.xml который создает таблицу если ее нет ... и там указана стратегия drop-and-create-table т.е по умолчанию так будет всегда ... т.е. для работы с данными надо будет создать другой persistence-unit - указав в нем другую Table Generation Strategy и те классы Entity которые он может видеть и с которыми он может работать ? Код: xml 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 16:08:40 |
|
||
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
ORM не умеют полноценно генерить схемы со всеми ключами и констрейнтами. Эта функционльность в них существует исключительно для чернового прототипизирования. В продакшн системах её лучше не использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 16:14:47 |
|
||
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
просто это очень удобно когда использует такого рода абстракцию и библиотеки типа Hibernate , Hibernate Criteria итд ... все что для развертыванию требуется это просто задеплоить ear (war) архив и все. Вы же говорите что для создания структуры лучше использовать sql скрипты инициализации. я правильно вас понимаю ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 16:29:20 |
|
||
|
ORM стратегия создания таблиц
|
|||
|---|---|---|---|
|
#18+
Atum1просто это очень удобно когда использует такого рода абстракцию и библиотеки типа Hibernate , Hibernate Criteria итд все что для развертыванию требуется это просто задеплоить ear (war) архив и все. Вы же говорите что для создания структуры лучше использовать sql скрипты инициализации. я правильно вас понимаю ? Я говорю про liquibase. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2013, 17:00:36 |
|
||
|
|

start [/forum/topic.php?fid=59&msg=38181573&tid=2129800]: |
0ms |
get settings: |
14ms |
get forum list: |
27ms |
check forum access: |
7ms |
check topic access: |
7ms |
track hit: |
57ms |
get topic data: |
23ms |
get forum data: |
5ms |
get page messages: |
87ms |
get tp. blocked users: |
2ms |
| others: | 331ms |
| total: | 560ms |

| 0 / 0 |
