powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / ORM стратегия создания таблиц
6 сообщений из 6, страница 1 из 1
ORM стратегия создания таблиц
    #38181541
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
возник такой вот вопрос

У нас есть web приложение, допустим есть и ejb часть ,
или это будет spring - тут не принципиально !

Одним словом есть компонент JEE архитектуры с некоторой бизнес логикой и контейнер ее исполнения (jboss , tomcat ,glassfish ).

Просто хочется понять как можно реализовать такую вот схему :

при первом старте приложения оно коннектится к базе (mysql , postgresql - от указанного в конфиге пользователя)

и создает в новой базе таблицы , заполняет их стартовыми данными итд ...

а вот при повторных запусках , когда такая задача уже не стоит - хочется ограничить права на создание таблиц и их удаление, и запускать приложение уже от пользователя который может только читать и писать в таблицы ...

вопрос как указать в конфигурации что создает таблицы одни пользователь , а работает с данными уже другой ?

обычно в конфиге указывается одни пользователь и его логин и пароль и все действия ведутся от него .
...
Рейтинг: 0 / 0
ORM стратегия создания таблиц
    #38181550
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Используйте JNDI DataSource, настраиваемый на сервере. Не используйте какие-то свои конфиги. Сделайте два DataSource для разных аккаунтов в базе. Один с правами менять структуру, другой - без.
2. Используйте liquibase, черед один DataSource, а само JEE приложение пусть работает через другой.
...
Рейтинг: 0 / 0
ORM стратегия создания таблиц
    #38181573
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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.
<persistence version="1.0" xmlns="http://java.sun.com/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/persistence http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd">
  <persistence-unit name="web-jpaPU" transaction-type="JTA">
    <jta-data-source>jdbc/__default</jta-data-source>
    <properties>
      <!-- use this property if target server is GlassFish V3 with EclipseLink -->
      <property name="eclipselink.ddl-generation" value="drop-and-create-tables"/>
      <!-- use this property if target server uses toplink
      <property name="toplink.ddl-generation" value="drop-and-create-tables"/>
      -->
    </properties>
  </persistence-unit>
</persistence>
...
Рейтинг: 0 / 0
ORM стратегия создания таблиц
    #38181584
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ORM не умеют полноценно генерить схемы со всеми ключами и констрейнтами. Эта функционльность в них существует исключительно для чернового прототипизирования. В продакшн системах её лучше не использовать.
...
Рейтинг: 0 / 0
ORM стратегия создания таблиц
    #38181626
Atum1
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто это очень удобно когда использует такого рода абстракцию и библиотеки типа Hibernate , Hibernate Criteria итд ...

все что для развертыванию требуется это просто задеплоить ear (war) архив и все.

Вы же говорите что для создания структуры лучше использовать sql скрипты инициализации. я правильно вас понимаю ?
...
Рейтинг: 0 / 0
ORM стратегия создания таблиц
    #38181712
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Atum1просто это очень удобно когда использует такого рода абстракцию и библиотеки типа Hibernate , Hibernate Criteria итд все что для развертыванию требуется это просто задеплоить ear (war) архив и все.
Вы же говорите что для создания структуры лучше использовать sql скрипты инициализации. я правильно вас понимаю ?
Я говорю про liquibase.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / ORM стратегия создания таблиц
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]