添加辅助的数据库组件

本文作者:苏生米沿

本文地址:http://blog.csdn.net/sushengmiyan/article/details/50445936


你能够将例如以下三种类型的脚本绑定到hibernateschema生成程序中:

1.schema生成的时候。创建脚本create就会运行。

一个自己定义的创建脚本能够在hibernate自己主动生成脚本之前,之后,甚至能够直接替换。换句话说,你能够写一个SQL脚本,这个脚本从你的映射元数据中在hibernate生成表、约束之前或之后运行。

2.Drop语句,在hibernate移除schema的时候运行。像create脚本一样,drop语句能够在自己主动生成之前之后或者直接替换hibernate的自己主动生成语句。

3.Load语句,总是在hibernate生成schema之后才去运行。作为生成的最后一步。它的主要目的就是导入你的程序运行之前的測试或者主数据。它能够包含不论什么形式的SQL语句,包含想alter这种DDL语句,假设你想进一步优化自己定义你的schema的话。

这个自己定义已经是其实的标准了,你能够使用JPApersistence.xml来配置这个持久化单元属性。

①.默认情况下,hibernate期望一个SQL语句占一行。启用多行语句就靠第一个转换了。你能够实现自己的org.hibernate.tool.hbm2ddl.ImportSqlCommondExtractor 假设你想要依据你自己的不同的方式来处理SQL脚本的话。

.这个属性定义了何时你创建或者销毁脚本会被调用。你自己定义的脚本将会包含CREATE DOMAN语句,它必需要在表创建使用这些DOMAIN的之前被创建。有了这些设置。schema生成器就在ORM元数据读取之前运行这个创建语句。

Drop语句就是在hibernatedrop表的时候给你了一个清楚你创建的数据的机会。

③.这是SQL脚本的位置。路径是从classpath開始算的。

④.这是drop语句的位置所在。

⑤.这个脚本在表创建之后运行。

我们提及过,DDL是跟产品特性挂钩的,假设你的产品支持多种数据源,你就需要设置各种的方言。你能够通过多个持久化单元的方式来解决问题。


原文地址:https://www.cnblogs.com/liguangsunls/p/7057663.html