在部署 JavaEE/JPA(eclipseLink) 项目之后,我需要执行小 sql 脚本(插入一些数据) glassFish - 你认为最好的方法是什么。我知道休眠有非常干净的方法来做到这一点不幸的是我正在使用 EclipseLink - 所以你认为在启动时发布 Construct 和 singletonBean 会做什么,我认为 sql-maven-plugin 也是可能的 - 我也看到了使用的想法SessionCustomizer 最后一个非常好,但我只需要在部署时运行该脚本吗?任何其他想法如何做得又好又干净?
问问题
2367 次
2 回答
1
于 2011-06-15T14:38:36.777 回答
0
我使用 Wildfly,但我认为您可以在 Glassfish 中做同样的事情。
在持久性单元中添加元素:
<property name="javax.persistence.sql-load-script-source" value="META-INF/defaultdata.sql"/>
<property name="javax.persistence.schema-generation.create-source" value="metadata-then-script"/>
<property name="javax.persistence.schema-generation.create-script-source" value="META-INF/ddlbsscarrier.sql"/>
在 META-INF 中使用您的查询创建 sql 文件。
第一个元素说从哪里读取“插入/更新”查询。
第二个元素说“首先从实体创建表,然后执行 DDL 脚本”
第三个元素说从哪里读取 DDL 查询为 ALTER TABLE/CREATE VIEW, ...
注意:我不知道是eclipselink限制还是Wildfly问题,但是查询必须是连续的:解析器结束执行在; 或在回车时这样的查询:
insert into table values
( x, y, z);
变成了 2 个查询,一个用于行,它们是错误的
于 2017-10-10T13:59:13.967 回答