我使用jhipster生成器来创建一个项目。我已按照jhipster documentation中提供的信息手动生成了一些实体:
如果您更喜欢(或需要)手动进行数据库更新,这里是开发工作流程:修改JPA实体(添加字段,a 关系等)在你的。中创建一个新的“更改日志” src / main / resources / config / liquibase / changelog目录。中的文件 该目录以其创建日期为前缀(在yyyyMMddHHmmss中 格式),然后有一个标题描述他们做什么。例如, 20141006152300_added_price_to_product.xml是个好名字。加上这个 您的“更改日志”文件 src / main / resources / config / liquibase / master.xml文件,因此应用它 下次运行应用程序时如果需要更多信息 使用Liquibase,请转到http://www.liquibase.org。
这里的文档只是提到,如何添加!!! 如果我想删除字段或实体之间的关系(jpa实体)该怎么办?
由于
答案 0 :(得分:50)
1)编辑代表你的实体的json文件(添加/删除字段,语法非常简单,如果需要对'fieldsContainOneToMany'等常规实体属性进行任何更改,请检查文件末尾),你会在:
找到它<jhipster_root_folder>/.jhipster/entityName.json
2)构建代码。
3)在项目的根目录中运行命令:
yo jhipster:entity entityName
注意:默认情况下,此命令会覆盖所有手动更改。我建议在运行此命令之前在VCS存储库上进行提交,以最终还原任何不需要的更改。
4)运行
mvn liquibase:diff
答案 1 :(得分:24)
我有解决方案为jhipster 3.4.2工作,这是我1天的结果,希望对你有帮助:))
yo jhipster:entity entityName
changelog .xml
文件和navbar.html
文件选择否。mvn compile liquibase:diff
答案 2 :(得分:6)
在同一页面中,您可以看到这句话:
如果您已选择在开发中使用MySQL或Postgresql,则可以使用mvn liquibase:diff目标自动生成更改日志。
Liquibase Hibernate是一个在你的pom.xml中配置的Maven插件,与你的Spring application.yml文件无关,所以如果你更改了默认设置(例如,更改了数据库密码),你需要修改这两个文件。
以下是开发工作流程:
修改您的JPA实体(添加字段,关系等) 编译你的应用程序(这适用于编译的Java代码,所以不要忘记编译!) 运行mvn liquibase:diff(或mvn编译liquibase:diff之前编译) 一个新的&#34;更改日志&#34;在src / main / resources / config / liquibase / changelog目录中创建 查看此更改日志并将其添加到src / main / resources / config / liquibase / master.xml文件中,以便下次运行应用程序时应用它 如果使用Gradle而不是Maven,则可以通过运行./gradlew liquibaseDiffChangelog来使用相同的工作流,并在需要时更改liquibase.gradle中的数据库配置。
所以你只需要更改你的JPA实体(删除,添加等),运行 mvn compile liquibase:diff ,并将更改放在master.xml中。
答案 3 :(得分:6)
您也可以modify existing entities互动,例如将yo jhipster:entity Foo
用于实体Foo
。
这样,您可以重新生成所有实体和对话框。
如果您使用的是RDBMS和liquibase,则必须编写changelog文件并将其添加到master.xml中。这有助于使用mvn liquibase:diff
或gradlew liquibaseDiff
,您可以对现有数据库运行。不过,我建议手动编写更改日志文件。
答案 4 :(得分:1)
对于jhipster 5.7.0,您可以再次运行实体命令,它会询问您是否要对其进行修改。
% jhipster entity device
INFO! Using JHipster version installed locally in current project's node_modules
INFO! Executing jhipster:entity device
INFO! Options: from-cli: true
Found the .jhipster/Device.json configuration file, entity can be automatically generated!
The entity device is being updated.
? Do you want to update the entity? This will replace the existing files for this entity, all your custom code will be overwritten
Yes, re generate the entity
❯ Yes, add more fields and relationships
Yes, remove fields and relationships
No, exit
答案 5 :(得分:0)
我为修改jhipster实体所做的工作就像关系一样添加新表:
注意:如果在此步骤之后,它有任何错误,serverError或我重新生成de entity regenerate Entity的内容。当然,如果你想保留所有数据,这不是一个好的选择。
答案 6 :(得分:0)
您可以通过两种方式修改实体。
第一(使用jdl-studio):
通过以下步骤更新.jh或.jdl文件:
1)使用settings.py
命令将.jh文件导出到项目的根文件夹。您也可以使用jhipster export-jdl myApp-jdl.jh
2)在这里,您可以编辑现有实体。您还可以添加新实体。
3)然后将这个myApp-jdl.jh文件保存到项目的根文件夹并运行jhipster export-jdl myPath/myApp-jdl.jh
,也可以将其存储在系统中的任何位置,并提供从中导入的路径!像jhipster import-jdl myApp-jdl.jh
第二(使用JHipster CLI):
根据官方文档jhipster.tech/creating-an-entity/的建议,您可以按照以下步骤更新实体:
1)键入我们用于使用CLI创建实体的相同命令jhipster import-jdl myPath/myApp-jdl.jh
。这里jhipster entity <my_entity_name>
是我们要修改的实体名称。
2)它会为您提供不同的选项,例如,重新生成实体,添加更多字段和关系,删除字段和关系等。
3)根据我们的要求进行修改。
注意::它将自动删除您对预构建的JHipster项目所做的手动更改!
解决方案:
1)在修改或添加新实体之前提交代码。
2)当要求您覆盖对文件的更改时,可以根据需要跳过覆盖选项。只是建议不要更改导航栏html文件。
3)之后,您可以将其打开到Intellij或Eclipse。然后,您可以通过本地历史记录来修改其他更改的文件。在Intellij中,本地历史记录将位于 VCS 菜单中。