JPA java代码生成

JPA java代码生成,java,jpa,autocomplete,templates,code-generation,Java,Jpa,Autocomplete,Templates,Code Generation,我特别寻找JPA代码生成技术 首先,项目能够生成符合JPA的代码的全部内容是什么?(如冬眠醇) 其次,我还想定制代码生成实用程序,因为它必须符合我们的公司标准 如果没有,那么使用反射生成java代码的所有框架都是什么?这样我就可以从头开始写了 注意:我使用eclipse生成JPA代码,并反复重构以使其符合要求。好的,基本上你的方法是错误的:JPA是生成工具 我这样说是因为您可以从SQL生成JPA实体,而JPA的全部要点是以另一种方式进行操作。首先定义对象模型,然后从中生成表和查询 例如,我看到项

我特别寻找JPA代码生成技术

首先,项目能够生成符合JPA的代码的全部内容是什么?(如冬眠醇)

其次,我还想定制代码生成实用程序,因为它必须符合我们的公司标准

如果没有,那么使用反射生成java代码的所有框架都是什么?这样我就可以从头开始写了


注意:我使用eclipse生成JPA代码,并反复重构以使其符合要求。

好的,基本上你的方法是错误的:
JPA是生成工具

我这样说是因为您可以从SQL生成JPA实体,而JPA的全部要点是以另一种方式进行操作。首先定义对象模型,然后从中生成表和查询

例如,我看到项目使用Hibernate来定义它们的实体,然后它们有一个ant构建脚本,该脚本从Hibernate实体模型创建数据库

JPA实体定义——尤其是注释定义——并不十分繁重。作为第一件事,它们确实是你最好的选择,而不是其他东西的产物

此外,另一个工具不会帮助您编写命名查询、定义关系上的正确级联选项等。如果您已经生成了代码,您将如何处理之后的修改


这不是正确的方法。

我也很难理解这个问题,但我会尝试重新措辞:

  • 数据库中有大量数据,您希望通过JPA访问这些数据
  • 您不希望手动编写类来访问不同的DBs/表
  • 目前,您的所有/大部分模型类都是从Eclipse中生成的
  • 这些模型具有JPA注释
  • 模型类(或注释)不符合公司标准
当您说“JPA java代码生成”时,我理解从提供的DB连接生成JPA注释模型类。大多数框架通常将其称为逆向工程

现在你有两个问题:

  • 可以推荐哪些代码生成器来生成JPA注释类
  • 是否可以自定义这些框架的输出,以及以何种方式
  • 回答第一个问题:

    • -问题中已经提到,但我更喜欢这个
    我真的很喜欢Netbeans代码生成,尤其是当您将结果显示给不熟悉JPA的人时

    在定制级别,我只能分享我使用Hibernate工具的经验。特别是对于可重复的结果,请尝试使用。您可以轻松地将一些目标添加到构建中,代码生成可以在两个级别完成:

    • 使用配置导出器
    • 提供定制
    使用这些模板,您应该能够涵盖大多数公司标准。查看hibernate工具包的
    pojo
    目录。定制代码生成的最简单方法是复制和调整模板,并将它们放在用于创建POJO的ant任务中的hibernate-tools.jar之前

    正如在另一篇评论中已经指出的,以后可能很难修改生成的代码。我希望以下提示可以帮助您:

    • 尝试在不同的文件夹中分离生成的和自定义的源文件
    • 考虑使用
      对您可能希望在手动步骤中调整的类进行调整

    看看,这是JPA的代码生成器。唯一的问题是它不会从SQL文件或表生成JPA代码,您需要一个orm.xml文件。如果您正在寻找一种直接从表生成代码的工具,您可能希望尝试Netbeans。它有直接从表生成JPA代码的选项

    ProjectLombok似乎允许您生成基本的命名查询,这是另一种在编译时使用注释和代码生成的方法

    见:

    hibernate论坛上的一个家伙似乎在使用hibernate工具的传统代码生成方法:

    我同意cletus的观点,即您无法生成所有命名查询,但我想我们可以想象生成基本命名查询,例如基于对象的一个或多个字段的查找器。

    我使用过,该工具可通过下载

    安装插件后,要对数据库进行反向工程,需要创建一个新的JPA项目,设置数据库连接,启动JPA运行时的自动下载(在我的例子中是Eclipse链接),然后开始生成过程


    在代码生成过程中,要求您提供有关表映射和生成的类的详细信息。在生成结束时,代码是干净的。

    另一个生成JPA代码的有效解决方案是“Telosys Tools

    一个Eclipse插件使用现有数据库(“数据库启动”方法)和可定制模板。由于其轻量级模型和Velocity模板(在GitHub上共享),此解决方案比Dali更灵活

    请参阅网站:

    Eclipse Marketplace上的插件:

    该原则的简要说明:

    对于JPA生成,请使用GitHub上提供的JPA模板:

    是一个生成器工具,可以生成JPA1/以及类似hibernate ORM的工件。 它基于数据库的逆向工程。 您可以指示生成器对不遵循DB约定的java代码应用约定,但映射将是正确的。(示例strip DB name prefix;以ADMIN_u开头的表,例如ADMIN_uEnvironment are ENVIRONMENT(w/out ADMIN)作为java类) 目前,这有助于您重塑您的模型,使其外观和手感更加逼真