2013-02-28 79 views
0

问题是,我不确定是否使用Hibernate进行第一次表初始化(创建表)是一种好方法。 我想完全控制这个过程。JPA(Hibernate)表初始化,最佳实践

所以,我想过使用DDL初始化脚本。但它似乎是DBMS依赖的,这也不好。

我想完全控制初始化过程,同时它应该与DBMS无关。

我该如何达到这个目标?

+0

你见过Liquibase吗? http://liquibase.org/ – Charlie 2013-02-28 21:05:43

+0

不,我没有。它看起来很有趣:) – XZen 2013-03-01 07:23:02

回答

0

这取决于你正在尝试使用数据库。您可以设置两个配置文件,比如说一个用于测试的文件,用于在derby中创建表格,然后是一个生产配置文件,该文件将使用假定存在表格的“生产”数据库。

此外,在开发过程中创建表是很有意义的,以便您可以即时创建对象/表,但是一旦您发布,您就可以切换配置。

+1

但是如果我想有机会初始化我的表在生产中。例如,在某些基于Web的应用程序的第一次执行期间。 – XZen 2013-03-01 07:29:32

+1

通常,为生产使用自动创建表是一个坏主意。通常情况下,您应该进行足够的测试,以确切知道生产所需的模式,然后预安装数据库,以便永不影响生产数据。虽然如果你的应用程序不是数据密集型/敏感的,那么它可以正常工作。根据我的经验,应用程序不应该对数据库有任何控制。关注点分离。如果应用程序失败,应该将其隔离,以免对数据造成不利影响。 – 2013-03-06 15:27:50