【问题标题】:OpenJPA: Code to build entities automatically from DBOpenJPA:从数据库自动构建实体的代码
【发布时间】:2012-01-21 19:05:53
【问题描述】:

您好,我正在寻找自动生成实体的代码/工具。我不是在寻找像 eclipselink 这样必须手动执行的软件,而是在 db 更改时可以自动运行的一段代码(或 maven 插件)。 (如果我可以通过 cron 作业自动运行 eclipselink,那对我有用。)

其他一些选项:

  1. 我认为 Hibernate 提供了一种逆向工程方法,该方法可以从 maven 构建中调用,该方法自动从 db 模式生成实体。有没有人有这样的openjpa工具。

  2. 您只需指定数据库 URL 和选项的任何命令行实用程序,该实用程序都会生成实体。我可以写一个 cron 每晚运行该实用程序等。

  3. 任何可以通过cron自动调用并生成实体的软件也可以。

更新: OpenJPA 反向映射工具似乎真的很讨厌生成带有注释、映射等的适当实体......如果有人纠正我,我会很高兴

【问题讨论】:

  • 您的意思是从数据库结构反向移植到 Java 实体中?
  • 正确。我们有开发人员在开发过程中更改数据库。我们只需要一个像每晚一样运行并构建所有 java 实体的系统。

标签: java database orm entity openjpa


【解决方案1】:

查看用户手册中的Reverse Mapping。您可以从 ant 任务中启动它。

【讨论】:

    【解决方案2】:

    我怀疑这样的全自动工具是否存在——仅仅是因为没有人工干预就无法做好。例如,算法将如何决定在equals()hashCode() 中应考虑哪些属性?还是新的单向或双向关系?懒惰/渴望加载?以此类推。

    如您所知,以及其他人已经注意到,这些工具本身是存在的,但它们更倾向于运行一次、调整结果并从现在开始使用它,而不是成为持续集成过程的一部分.

    【讨论】:

    • 为什么不呢?像 elipselink 这样的工具基本上做同样的事情。我只需要自动运行,比如 eclipselink。
    • 我所说的eclipselink是指我在Netbeans中拥有的那个。我还没有尝试过其他 eclipselink。
    • @SQC 半自动。他们提出映射选项供您选择,这不是一回事。
    • @MaDa.. 也许你是对的(+1),但这不是我问题的重点。我稍微改变了这个问题。这应该让您更清楚地了解我在寻找什么。感谢您的关注。
    • +1。 @SQC:实体将成为您应用程序的核心。应谨慎设计和记录它们。它们还应该包含方法,而不仅仅是 getter 和 setter。他们应该提供封装的服务。某些实体可能必须扩展其他类或实体或实现接口。不要让自动工具为您创建它们。
    猜你喜欢
    • 2011-01-22
    • 2014-12-26
    • 2014-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多