在应用程序启动/关闭时填充使用 jpa 创建的表的最佳方法是什么? 类似,但使用数据操作语言而不是数据定义语言。 我正在使用 HibernatePersistence 作为持久性提供程序。
最佳答案
如果您也使用 spring,那么this answer会起作用的。
如果您不使用 Spring,则必须手动运行 DDL 代码。请注意,Hibernate 对修改数据库的支持非常有限(它基本上只能创建表)。因此,如果您需要其他任何内容,则必须使用自定义 SQL。
[编辑] 如果您不使用 Spring,那么您会找到一种方法来访问 Hibernate Session
。调用允许运行任意 SQL 的 doWork()
方法。
另一种方法是创建域对象并保留它们。不过,我更喜欢第一种方法,因为您可以通过这种方式固定生成对象的 ID,并使用 JPA 接口(interface)执行其他更复杂的操作。
如果您不想编写大量 insert
语句,则将数据插入数据库并使用 SquirrelSQL 等 SQL 工具导出,该工具可以创建 insert
> 为您提供的陈述。将它们放入一个额外的文件中,在启动时读取该文件,在 ;
处分割它并执行每个部分。
关于java - 启动时的 JPA 自定义脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1625734/