2012-09-11 34 views
4

你可以告诉hibernate或任何JPA实现为你创建方案,问题是如果你想用默认的初始记录填充表?,有这样的事吗?

对于解决方案,在应用程序启动时,您可以检查表是否为空,然后创建记录,但是我认为如果在创建方案后有一个侦听器会更合适。

回答

4

如果您正在使用Hibernate,可以使用您的初始数据创建一个import.sql(例如src/main/resources)文件。在应用程序启动时,文件被拾取并由Hibernate执行。

您也可以使用专门的工具预填(并清空)DB,如DBUnitArquillian perstistence extension

至于原始问题 - AFAIK你只有在JPA Entity lifecycle events访问。理论上它们可以用来检查或改变表格的内容,但这是一个坏主意。

编辑:数据库播种没有可访问的JPA标准。即使是Pro JPA 2 book也建议使用JDBC设置进行种子设定。我认为你用上述工具更好。我并不知道像Eclipse Hibernate的import.sql这样的EclipseLink的种子协助,但有some DIY advice for a similar workaround。我希望它会有所帮助。

+0

但这不是一个JPA标准,是吗?和eclipse链接怎么样 – DrAhmedJava

+1

@DrAhmedJava编辑答案的细节 – kostja