2011-01-26 139 views
2

这个问题是基于之前发布的两个线程。liquibase和hibernate注释

Hibernate using JPA (annotated Entities) and liquibase

Liquibase diffChangeLog against a Hibernate mapping definition

我的困惑是,如果我使用Hibernate注解,我仍然需要写在更新日志的变更。

此外,很多人现在都在使用hibernate注释,我希望有人能给我一个真正需要的东西的例子来真正实现它。在互联网上没有好的例子。

+0

您可以举一些例子,如何使用Liquibase和JPA注释? – 2011-01-30 21:55:19

回答

4

liquibase hibernate diff的JPA/Annotation支持没有经过过度测试,也没有涵盖所有的情况和注释,所以考虑到目前的状态,它可能还没有准备好作为正常工作流的一部分。这就是说,即使/经过全面测试,手动编写变更集也许是有意义的。 hibernate支持在当前数据库和hibernate期望的数据库之间做一个差异,并输出变更集以从当前数据库移动到hibernate数据库。虽然这经常奏效,但任何基于数据库差异的进程都存在固有的问题(请参阅http://blog.liquibase.org/2007/06/the-problem-with-database-diffs.html)。就个人而言,由于最好检查并可能修改由hibernate diff添加的变更集,然后执行它们,我觉得自己添加变更集也很容易。通过这种方式,我可以利用更高级别的更改(如IntroducingLookupTable),使changeLog更具可读性。

肯定有环境和工作流程,其中changeset的生成是很好的,这就是为什么它会被支持,但它还没有,你肯定可以使用liquibase与休眠没有它。

+2

嗨,nathan,如果你能给我一个例子,说明如何使用maven(带或不带hibernate注释),这将是非常好的,因为我还没有找到任何实际的例子。你也可以添加一些示例拉链,以便我们可以清楚地了解liquibase的工作原理。即使是一些非常基本的愚蠢的例子也足够了。 – Ikthiander 2011-01-27 00:39:49