gpt4 book ai didi

yeoman - 是否可以从JHipster中的现有数据库模型生成实体?

转载 作者:行者123 更新时间:2023-12-04 13:26:43 25 4
gpt4 key购买 nike

有没有一种方法可以从现有的数据库模型生成实体,或者我必须自己用yeoman(yo)创建所有实体?

我从Spring Roo项目中听说过这种技术。

最佳答案

不,您不能,因为jhipster yeoman生成器“仅”根据模板+给定的参数/选择来搭建实体。在此步骤中,它不会询问诸如数据库之类的外部来源。

生成器为jpa,angular和liquibase更改日志创建所有文件。最后,liquibase在启动过程中使用更改日志创建表(如果尚不存在)。

因此,可以说jhipster使用“实体优先”而不是“表优先”的方法。

尽管这将是一个不错的功能,但我认为它不会集成到jhipster中,因为现有数据库是如此不同,以致于很难处理每种可能性。主键有不同的选择,不同的数据类型,多对多关系或概括的不同实现等。
或者您可以在Github上请求一个新功能,也许可以实现...

但是,给出一些指示:
我也遇到过同样的情况,我试图将现有的大约50个表和大量数据的数据库迁移到jhipster(大约是jhipster 1.6左右),我也想到了“数据库重构” [1]。但是,我的“解决方案”是使用jhipster创建一个新数据库,然后使用一些sql语句将数据从旧数据库迁移到新数据库。
主要原因:

  • 我有另一个不同于jhipster预期模型的数据库模型(例如,我使用了其他主键和引用)
  • 不会生成存储库或有角度的东西(这是我使用jhipster的主要原因)
  • 缺少liquibase更改日志[2]
  • 当您尝试针对现有表生成jhipster实体时,这种特殊的重构之后会引起很多其他更改。与使用jhipster创建新实体相比,这些更改可能会更耗时。
  • 这些更改也可能导致功能升级

  • 是的,roo具有用于逆向工程或重构数据库( http://docs.spring.io/spring-roo/reference/html/base-dbre.html)的技术。 AFAIK,它仅创建基于JPA的符合roo规范的实体。因此,它与jhipster使用的spring数据JPA也有所不同(与[1]等其他jpa反射(reflect)工具一样的问题)

    [1]我使用了一个Eclipse JPA插件,该插件以前可以从另一个基于dropwizard的项目中的现有数据库中创建jpa实体类。但是,我没有将它与Spring/Jhipster结合使用。

    [2]可以从现有数据库中创建liquibase更改日志: http://www.liquibase.org/documentation/generating_changelogs.html

    关于yeoman - 是否可以从JHipster中的现有数据库模型生成实体?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29840552/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com