2014-03-30 1 views
0

Я завернул существующий официальный драйвер jdbc (нет, это не СУБД Oracle) с командой addon create wrapper Roo 1.2.5. Я начал с osgi start и osgi ps перечисляет его как работающий.Spring Roo: можно использовать драйвер базы данных для команды jpa setup?

Я хотел бы сделать его доступным для анализа database reverse engineer. Но, как я понимаю, это означает, что мне нужно настроить мой проект Roo с помощью jpa setup, и я не вижу возможности использовать этот драйвер с этой командой.

Как я могу сделать свой упакованный драйвер доступным для установки jpa? Как мне обратиться к нему в командной строке по адресу jpa setup --database [the database reference, here]?

Доступные здесь опции DATABASE_DOT_COM, DB2_400, DB2_EXPRESS_C, DERBY_CLIENT, DERBY_EMBEDDED, Жар-птице, GOOGLE_APP_ENGINE, H2_IN_MEMORY, HYPERSONIC_IN_MEMORY, HYPERSONIC_PERSISTENT, MSSQL, MySQL, Oracle, Postgres и SYBASE.

Единственный способ обойти это, что я могу видеть здесь в данный момент, - установить любой из вариантов поставки jpa setup, а затем вручную изменить данные СУБД, но мне кажется, что есть еще один официальный способ.

В статьях, которые я прочитал относительно этого, в основном о Oracle и DBRE, этот важный шаг игнорируется, как и сам по себе. Я не новый пользователь Roo, но как установить драйвер базы данных сторонних производителей, который еще не доступен с Roo, на самом деле кажется довольно расплывчатым.

Упомяните меня и будущих пользователей о том, как это сделать эффективно? Если вы не знаете, как именно, как насчет некоторых идей?

Update * В то время как я слом идеи, как я вдруг свободно выбирать свою собственную СУБД не нужен. Тем не менее было бы неплохо узнать, как настроить JPA с помощью DB, который не был указан.

С другой стороны, если список вариантов, предложенный Roo, фактически является полным списком поддерживаемых провайдером СУБД, тогда, конечно, это знание было бы спорным, если не существует промежутка времени между новой поддержкой провайдера - Hibernate в моей case - и существующая версия Roo.

ответ

1

Вы должны думать в двух среды выполнения:

  1. выполнения приложений: вы просто предоставить информацию для подключения к Oracle. Вам не нужна оболочка, только JAR-драйвер JDBC в вашем локальном репо maven.
  2. Roo runtime: Roo работает в среде OSGi, требуется Oracle JDBC, завернутый в OSGi-конверт, поэтому его можно загрузить и использовать с помощью дополнения Roo DBRE и подключиться к DB.

Таким образом, вы должны сделать шаги следовать, чтобы запустить DBRE на вашем проекте:

  1. Настройка JPA соединения в стандартным способом (с помощью jpa setup --database ORACLE ....)
  2. Используйте osgi start --file команду в генерируемой обертку для загрузки Oracle JDBC на окружающую среду OSGi
  3. Использование database introspect или database reverse engineer (этот спецназовец использует конфигурацию соединения, установленный в шаге # 1)
+0

Спасибо. Однако стандартный способ невозможен, так как это ** не ** база данных Oracle. Вот почему я написал «(а не Oracle)», как в «это не СУБД Oracle, с которой я подключаюсь». Прошу прощения за двусмысленность. – MiB

+0

Попробуйте следующее: на шаге 1 выберите любую базу данных (неважно, какая из них), а затем до шага №2 обновите файлы «database.properties» и «persitent.xml» вручную с действительными параметрами подключения. Roo будет использовать API драйвера JDBC для анализа БД. – jmvivo

+0

Благодарим за предложение jmvivo. Это временное решение, которое я имел в виду с «ручным изменением деталей». Хотя это, вероятно, будет работать, если поставщик поддерживает СУБД, я думаю, что я должен добавить JIRA для команды «addon create wrapper», чтобы добавить эту БД в качестве опции для настройки JPA. В конце концов, почему я должен иметь возможность создавать оболочку OSGI для драйвера, если не для ее использования в среде Roo? – MiB