Подтвердить что ты не робот

Как изменить существующий объект, сгенерированный с помощью jhipster?

Я использую генератор jipper для создания проекта. Я создал некоторую сущность вручную, следуя информации, представленной в документации jhipster:

Если вам нужно (или нужно) вручную обновлять базу данных, вот рабочий процесс разработки: измените свой объект JPA (добавьте поле, отношения и т.д.) Создайте новый "журнал изменений" в своем src/main/resources/config/liquidibase/changelog. Файлы в этот каталог имеет префикс их даты создания (в yyyyMMddHHmmss формат), а затем заголовок, описывающий, что они делают. Например, 20141006152300_added_price_to_product.xml - хорошее имя. Добавь это "изменить журнал" в вашем файл src/main/resources/config/liquidibase/master.xml, поэтому он применяется при следующем запуске приложения. Если вы хотите получить дополнительную информацию о используя Liquibase, перейдите в http://www.liquibase.org.

Здесь в документации просто упоминается, как добавить!!! Что делать, если я хочу удалить поле или отношение между объектами (jpa entity)?

Спасибо

4b9b3361

Ответ 1

1) Отредактируйте json файл, представляющий вашу сущность (добавьте/удалите поле, синтаксис довольно прост, проверьте в конце файла, если требуется какое-либо изменение общих свойств объекта, таких как "fieldsContainOneToMany"...) вы найдете его в:

<jhipster_root_folder>/.jhipster/entityName.json

2) Создайте код.

3) В корне вашего проекта запустите команду:

yo jhipster:entity entityName

ПРИМЕЧАНИЕ. Эта команда по умолчанию перезаписывает все ваши изменения вручную. Я рекомендую сделать фиксацию в репозитории VCS, прежде чем запускать эту команду, чтобы в конечном итоге вернуть любые не требуемые изменения.

4) запустите

mvn liquibase:diff

Ответ 2

У меня есть решение, работающее для jiffster 3.4.2, это результат меня за 1 день, надеюсь, он вам поможет:)

  • Выполнить yo jhipster:entity entityName
  • Измените сущности (добавьте, удалите,...), в конце, jhipster даст вопрос о переопределении файла, ВАЖНОЕ ПРИМЕЧАНИЕ: выберите NO для файла changelog .xml и navbar.html.
  • Вернуться к проекту и запустите mvn compile liquibase:diff
  • Запустите приложение
  • DONE

Мне жаль, что мой английский не очень хорошо.

Ответ 3

На этой же странице вы можете увидеть это предложение:

Если вы решили использовать MySQL или Postgresql в разработке, вы можете использовать цель mvn liquidibase: diff, чтобы автоматически генерировать журнал изменений.

Liquibase Hibernate - это плагин Maven, который настроен в вашем pom.xml и не зависит от вашего файла Spring application.yml, поэтому, если вы изменили настройки по умолчанию (например, изменили пароль базы данных), вы необходимо изменить оба файла.

Вот рабочий процесс разработки:

Измените свой объект JPA (добавьте поле, отношение и т.д.). Скомпилируйте свое приложение (это работает на скомпилированном Java-коде, поэтому не забудьте скомпилировать!) Запустить mvn liquidibase: diff (или mvn компилировать жидкую жидкость: diff для компиляции до) Новый "журнал изменений" создается в каталоге src/main/resources/config/liquidibase/changelog Просмотрите этот журнал изменений и добавьте его в свой файл src/main/resources/config/Liquibase/master.xml, поэтому он применяется при следующем запуске приложения Если вы используете Gradle вместо Maven, вы можете использовать тот же рабочий процесс, запустив. /gradlew liquidibaseDiffChangelog и изменив конфигурацию базы данных в файле liquidibase.gradle, если это необходимо.

Итак, вам просто нужно изменить свои сущности JPA (удалить, добавить и т.д.), запустить mvn компилировать Liquibase: diff и поместить изменения в master.xml.

Ответ 4

Вы также можете изменять существующие объекты в интерактивном режиме, например. используя yo jhipster:entity Foo для объекта Foo.

Таким образом, вы можете регенерировать все сущности и диалоги.

Если вы используете СУРБД и ликбазу, вам нужно написать файл изменений и добавить его в файл master.xml. Здесь помогает использовать mvn liquibase:diff или gradlew liquibaseDiff, которые вы можете использовать против существующей БД. Хотя, я бы рекомендовал написать файлы изменений вручную.

Ответ 5

Что я сделал, чтобы изменить объект jhipster как отношение для добавления новых таблиц:

  • (сохранить проект до того, как что-нибудь произойдет: p) yo jhipster: entity TableToEdit и отредактировать все, что вы хотите. Кому редактироватьTableOrAdd
  • Затем добавьте новые таблицы. (необязательно)
  • Тогда мне просто нужно было изменить или удалить все таблицы базы данных, чтобы автоматически создавать новые поля и отношения на части SQL.

Примечание. Если после этих шагов у него есть какая-либо ошибка, serverError или что-то, я регенерирую объект регенерировать Entity. Конечно, если вы хотите сохранить все свои данные, это не очень хорошая альтернатива.