当前位置: 首页 > 面试题库 >

JPA Java代码生成

邓毅
2023-03-14
问题内容

我专门在寻找JPA代码生成技术

首先,哪些项目可以生成符合JPA的代码?(例如HibernateTools)

其次,我还想自定义代码生成实用程序,因为它必须符合我们的企业标准。

如果没有,使用反射生成Java代码的所有可用框架有哪些?所以我可以从头开始写。

注意:我使用eclipse生成JPA代码,并反复对其进行重构以使其兼容。


问题答案:

我也很难理解这个问题,但我将尝试改写:

  • 您在数据库中有很多数据,并且想通过JPA访问它
  • 您不想手动编写类来访问不同的数据库/表
  • 当前,所有/大多数模型类都是从Eclipse内部生成的
  • 这些模型具有JPA批注
  • 模型类别(或注释)不符合公司标准

当您说“ JPA Java代码生成”时,我了解从提供的DB连接生成JPA注释的模型类。大多数框架通常将其称为逆向工程。

现在您有两个问题:

  1. 可以建议使用哪些代码生成器来生成JPA注释的类?
  2. 是否可以以哪种方式自定义这些框架的输出?

要回答第一个问题:

  • Hibernate Tools-问题中已经提到,但是我更喜欢这个
  • EclipseLink
  • 网豆

我真的很喜欢Netbeans代码生成,特别是如果您将结果显示给不熟悉JPA的人。

在定制级别上,我只能分享我在Hibernate
Tools方面的经验。特别是对于可重现的结果,请尝试使用基于ant的任务。您可以轻松地向构建中添加一些目标,并且可以在两个级别上完成代码生成:

  • 使用属性配置导出器
  • 提供自定义的freemarker模板

使用模板,您应该能够涵盖大多数公司标准。查看pojohibernate-
tools软件包的目录。定制代码生成的最简单方法是复制和修改模板,并将其放在用于创建Pojo的ant任务中的hibernate-tools.jar之前。

正如另一条评论中已指出的那样,此后可能很难修改生成的代码。希望以下提示可以为您提供帮助:

  • 尝试将生成的和自定义的源文件分隔在不同的文件夹中。
  • 考虑使用[@MappedSuperclass](http://java.sun.com/javaee/5/docs/api/javax/persistence/MappedSuperclass.html)可能需要手动调整的类。


 类似资料:
  • 我正在根据参考指南学习使用Map结构。日食验证是 面向Web开发人员的Eclipse Java EE IDE。版本:开普勒服务版本2 pom。xml如下所示,与参考指南相同 它表示在构建项目时将生成实现代码。但是,它似乎不会在目标/生成的源文件夹下生成

  • 大多数Blockly应用程序需要将块转换为代码以执行。本页描述如何将代码生成器添加到自定义块。 首先,转到generators/目录并选择与您要生成的语言(JavaScript,Python,PHP,Lua,Dart等)相对应的子目录。假设您的代码块不适合现有类别,请创建一个新的JavaScript文件。这个新的JavaScript文件需要包含在<script ...>编辑器的HTML文件中的标记

  • Jboot 内置了一个简易的代码生成器,可以用来生成model层和Service层的基础代码,在生成代码之前,请先配置jboot.properties关于数据库相关的配置信息,Jboot 代码生成器会通过该配置去链接数据库。 jboot.datasource.type=mysql jboot.datasource.url=jdbc:mysql://127.0.0.1:3306/jbootdemo

  • 遵照此规范,在实际操作中,有许多重复。接下来推荐一款专为本规范量身定做的代码生成器 Laravel 5.x Scaffold Generator。 本扩展支持 5.1 ~ 5.5 版本的 Laravel。 只需要一个命令: 即可生成: $ php artisan make:scaffold Projects --schema="name:string:index,description:text:

  • 注: 内容来自官网资料 Java Generated Code 这个页面准确描述 protocol buffer 编译器为任何给定协议定义生成的java代码。proto2和proto3生成的代码之间的任何不同都将被高亮 - 注意在这份文档中描述的是这些生成代码的不同,而不是基本的消息类/接口,后者在两个版本中是相同的。在阅读这份文档之前你应该先阅读 proto2语言指南 和/或 proto3语言指

  • Sergen 有一些额外的配置选项,你可以通过解决方案目录下的配置文件(Serenity.CodeGenerator.config)设置。 这是所有的配置选项: public class GeneratorConfig { public List<Connection> Connections { get; set; } public string KDiff3Path { get