JPA的数据库建模工具,支持可视化图表。

11
我正在寻找一种工具,帮助设计和实现Java项目的数据库和实体。可能我们正在使用JPA或直接Hibernate。我寻找的功能包括:
  • 使用可视化建模器设计数据库
  • 从可视模型创建实体
  • 将实体更改更新到可视模型中
  • 将现有的数据库模式导入为可视模型/实体类
所以,这个想法是最初使用可视化工具创建数据库模型,然后自动从中生成实体,并随后修改代码并期望可视化图表反映出这些变化(因此适用于文档目的)。我想要完整的表模式表示,不仅仅是ER图。
还有其他问题(当然),但它们似乎不太针对Java / JPA,并且没有如此严格的要求。它们通常只涉及从代码或数据库模式生成图表 - 它们不需要双向支持(如果这是正确的术语)。
到目前为止我发现的产品有:
  • NetBeans (6.7.1):支持从UML生成Java类,JPA需要特定的模板(听起来太棘手)。无法从类中识别新元素。
  • DbSchema:似乎提供了一些模式的可视化,但无法启动,因此无法说太多。商业软件,但也有免费版本。
  • Omondo EclipseUML:似乎有某种支持,但价格非常昂贵
  • SchemaSpy:仅支持从现有数据库模式创建文档。也找不到全面的图表。
  • Toad Data Modeller:主页有点凌乱,但看起来支持从现有数据库创建图表以及从图表创建数据库模式。没有代码生成功能。
  • Eclipse WTPDali JPA工具:不支持视觉展示,但旨在为JPA开发提供帮助。
作为结论,Dali似乎最有趣,因为它针对JPA开发。然而,它似乎没有任何可视化图表(只有轮廓等)。
有什么建议吗?
2个回答

7
请看Eclipse的JPA Diagram Editor,最近发布了第一个里程碑版本。从公告中可以得知:

我很高兴地宣布,JPA Diagram Editor项目发布了其第一个里程碑版本-0.5 RC1。只需按照安装说明,发布在项目维基上,您就可以在图表中构建JPA模型。有一个不错的入门教程可帮助您迈出第一步。如果您想在安装之前快速查看,请查看我们在YouTube上的演示

An example of a diagram created by the JPA editor

JPA Diagram Editor是WTP孵化器中的新项目。该项目由SAP发起,旨在贡献来自SAP NetWeaver开发人员工具包的现有JPA Diagram Editor,并在Eclipse社区中继续开发。此贡献基于Graphiti项目- Eclipse中的新图形建模基础架构。

该项目的官方0.5版本将提供最初贡献的稳定版本。由于迁移到Graphiti,有一些需要清理的错误,我们正在积极处理这些问题。尽管如此,我们决定尽早发布以更早地听取您的反馈。如果最终发现错误,请在WTP孵化器Bugzilla(使用组件wtp.inc.jpaeditor)中报告。如果已经发现了该错误,则可以查看已报告的错误列表-我们目前正在积极测试。

请注意,目前JPA Diagram Editor仅支持JPA 1.0项目。这意味着您将无法在JPA 2.0项目的上下文菜单中看到“打开图表”操作。 JPA 2.0支持肯定在我们的计划中。在发布稳定的0.5版本后,我们将开始处理它。


这看起来非常有前途(正在安装),正是我在寻找的。太遗憾它还没有“完整”,可能会不稳定和有bug。我真的很喜欢与Dali JPA工具的集成。这应该是完美的...然而,由于它还不够成熟,我也很乐意听取其他选择的建议 :) - Tuukka Mustonen
@Tuukka 是的,它非常新,可能不太成熟。但是我至少想提一下它(因为它很新)。 - Pascal Thivent
1
对于任何感兴趣的人,我试用了这个产品。它仍处于相当基础的水平,但支持实体及其属性的基本CRUD操作。它看起来也足够特定(对于JPA / Java),可以实际上帮助开发/文档编写。此外,其他数据建模产品通常反映数据库本身,但是该产品位于代码级别,并实际反映实体。毕竟,在代码中不使用的数据库表/列怎么办...我并不深入研究Dali JPA工具,但可能也可以使用此工具反映数据库。 - Tuukka Mustonen
@Pascal Thivent,您能提供一下我的问题的解决方法吗?http://stackoverflow.com/questions/12979282/cannot-add-embeddable-classes-in-jpa-diagram-editor - Zaw Than oo
https://wiki.eclipse.org/JPA_Diagram_Editor_Project 已经三年没有更新了。 - Archimedes Trajano

3

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接