java - 启动时的 JPA 自定义脚本

标签 java sql hibernate jpa ejb-3.0

在应用程序启动/关闭时填充使用 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/

相关文章:

java - IntelliJ IDEA 14步反编译代码?

java - 用于不断变化的文本,属性文件的体系结构设置?在Java EE环境中

javascript - 在 JavaScript Electron 桌面应用程序中存储大量关系数据?

sql - 如何在postgres中执行减法

SQL:将本月的记录数附加为列/字段

java - 让 watij 运行

java - 使用此代码从数组列表中删除重复项但忽略大小写

hibernate - 关于乐观锁的基本问题(Hibernate)

java - 如何使用 hibernate 在不迭代的情况下将 List<Object> 插入数据库?

java - 如何全局设置 Hibernate 验证约束的消息?