Как изменить существующий объект, сгенерированный с помощью 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)?
Спасибо
Ответы
Ответ 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. Конечно, если вы хотите сохранить все свои данные, это не очень хорошая альтернатива.