Java 如何修改使用jhipster生成的现有实体?
我使用jhipster生成器创建项目。我根据中提供的信息手动生成了一些实体: 如果您喜欢(或需要)手动执行数据库更新,那么以下是开发工作流:修改您的JPA实体(添加字段、 关系等)在您的数据库中创建新的“更改日志” src/main/resources/config/liquibase/changelog目录。文件在 该目录以其创建日期(以yyyyMMddHHmmss为单位)作为前缀 格式),然后有一个标题描述他们的工作。例如 20141006152300_将_price_添加到_product.xml是个好名字。加上这个 您的系统中的“更改日志”文件 src/main/resources/config/liquibase/master.xml文件,因此应用了它 下一次运行应用程序时,如果需要有关 使用液化糖,请转到 这里的文档刚刚提到,如何添加!!! 如果我想删除一个字段或实体之间的关系(jpa实体),该怎么办Java 如何修改使用jhipster生成的现有实体?,java,hibernate,jpa,jhipster,Java,Hibernate,Jpa,Jhipster,我使用jhipster生成器创建项目。我根据中提供的信息手动生成了一些实体: 如果您喜欢(或需要)手动执行数据库更新,那么以下是开发工作流:修改您的JPA实体(添加字段、 关系等)在您的数据库中创建新的“更改日志” src/main/resources/config/liquibase/changelog目录。文件在 该目录以其创建日期(以yyyyMMddHHmmss为单位)作为前缀 格式),然后有一个标题描述他们的工作。例如 20141006152300_将_price_添加到_product
谢谢在同一页中,您可以看到这句话: 如果您选择在开发中使用MySQL或Postgresql,则可以使用mvn liquibase:diff目标自动生成变更日志 Liquibase Hibernate是在pom.xml中配置的Maven插件,它独立于Spring application.yml文件,因此如果您更改了默认设置(例如,更改了数据库密码),则需要修改这两个文件 以下是开发工作流程: 修改JPA实体(添加字段、关系等) 编译您的应用程序(这对编译的Java代码有效,所以不要忘记编译!) 运行mvn liquibase:diff(或之前要编译的mvn compile liquibase:diff) 将在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中。1)编辑表示实体的json文件(添加/删除字段,语法非常简单,如果需要对常规实体属性(如“fieldsContainOneToMany”…)进行任何更改,请在文件末尾签入),您可以在以下位置找到它:
<jhipster_root_folder>/.jhipster/entityName.json
注意:默认情况下,此命令将覆盖所有手动更改。我建议在运行此命令之前在VCS存储库上执行提交,以最终还原任何不需要的更改
4) 跑
您也可以交互地使用,例如,对于实体Foo
,使用yo jhipster:entity Foo
这样,您可以重新生成所有实体和对话框
如果您使用的是RDBMS和liquibase,则必须编写变更日志文件并将其添加到master.xml中。这里的帮助是使用
mvn liquibase:diff
或gradlew liquibaseDiff
,您可以在现有数据库上运行它。不过,我建议手动编写变更日志文件。我所做的修改jhipster实体(如添加新表的关系)是:
注意:如果在这个步骤之后,它有任何错误、serverError或我重新生成的东西。当然,如果您想保留所有数据,这不是一个好的选择。我已经为jhipster 3.4.2提供了解决方案,这是我在1天内完成的结果,希望对您有所帮助:)
changelog.xml
文件和navbar.html
文件选择否mvn编译liquibase:diff
对于jhipster 5.7.0,您可以再次运行entity命令,它将询问您是否要修改它
% 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
您可以通过两种方式修改实体 首先(使用jdl studio): 通过以下步骤更新.jh或.jdl文件: 1) 使用
jhipster export jdl myApp jdl.jh
命令将.jh文件导出到项目的根文件夹。您还可以使用jhipster export jdl myPath/myApp jdl.jh将.jh文件导出到特定路径
2) 在这里,您可以编辑现有实体。还可以添加新实体
3) 然后将这个myApp-jdl.jh文件保存到项目的根文件夹中,并运行jhipster import jdl myApp jdl.jh
,或者您可以将其存储在系统的任何位置,只需给出导入路径即可!比如,jhipster导入jdl-myPath/myApp-jdl.jh
秒(使用JHipster CLI):
根据官方文件的建议,您可以通过以下步骤更新您的实体:
1) 键入我们用于使用CLI创建实体的同一命令jhipster entity
。此处
将是我们要修改的实体名称
2) 它将为您提供不同的选项,如重新生成实体、添加更多字段和关系、删除字段和关系等
3) 根据我们的要求进行修改
注意:它将自动删除您在预构建JHipster项目上所做的手动更改
解决方案:
1) 在修改或添加新实体之前提交代码
2) 当它要求您覆盖对文件的更改时,您可以跳过
mvn liquibase:diff
% 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