一尘不染

如何使用初始数据填充Web应用程序

hibernate

我正在编写Web应用程序,并且想知道推荐的填充原始数据的方法是什么。这是JPA /
Hibernate和Spring应用程序,由maven构建。到目前为止,我已经使用脚本将手工数据填充到数据库中,并填充了初始数据。
单元测试使用自己的数据,这些数据是在每次测试之前用代码创建的。我的测试类扩展了
org.springframework.test.jpa.AbstractJpaTests
最后,我想进行一个Maven构建,该构建将创建数据库表单实体(现在我需要先运行应用程序以创建数据库,然后运行脚本),然后填充初始/词典数据并运行单元测试和集成测试。此过程应完全自动化,以将其构建到CI服务器(哈德森)中,从头开始创建新数据库也将受到赞赏。

附加要求:数据库不可知的解决方案将是最有价值的。

编辑:
我正在寻找的最佳示例是BootStrap.groovy中的init闭包


阅读 314

收藏
2020-06-20

共1个答案

一尘不染

编辑 :向博客文章添加了一个链接,该链接显示了如何使用Spring和DbUnit测试Hibernate JPA。

[…]我想要一个可以通过实体创建数据库的Maven构建

有一个带有hibernate3:hbm2ddl目标的maven
hibernate3插件
可能会有所帮助。结合使用maven sql插件,应该可以从生成的DDL创建此架构。

[…]然后填充初始/词典数据

同样,maven sql插件可以在这里完成工作。也许使用DBUnit是另一个优雅的解决方案(请参阅maven
dbunit plugin
)。

并运行单元测试和集成测试。

好吧,我不确定您的单元测试应该访问数据库,但是对于集成测试,请按照我所说的检查DBUnit。这确实是一个非常不错的工具,它使您可以将数据库设置为已知状态,在执行测试后测试表中的预期内容,并将数据库恢复为初始状态。有关示例,请参见使用Spring&DbUnit测试JPA
Hibernate

此过程应完全自动化,以将其构建到CI服务器(哈德森)中,从头开始创建新数据库也将受到赞赏。

我认为这是可行的。

2020-06-20