本文作者:蘇生米沿
本文地址:[http://blog.csdn.net/sushengmiyan/article/details/50534361](http://blog.csdn.net/sushengmiyan/article/details/50534361)
我們都清楚,可以使用hibernate的metadata元數據生成表結構,但是一般情況下,我們光靠hibernate的自動生成是遠遠不夠的,我們期待使用自己的sql腳本,你hibernate自動執行那個腳本就可以。那么hibernate支持不支持呢?答案是yes!
只需要我們做以下設置:
~~~
<property name="hibernate.hbm2ddl.auto" value="create" />
<property name="hibernate.hbm2ddl.import_files_sql_extractor" value="org.hibernate.tool.hbm2ddl.MultipleLinesSqlCommandExtractor"/>
<property name="javax.persistence.schema-generation.database.action" value="drop-and-create"/>
<property name="javax.persistence.schema-generation.create-source" value="script"/>
<property name="javax.persistence.schema-generation.create-script-source" value="META-INF/complexschemas/LoadScript.sql.txt"/>
~~~
解釋以下:
1.hibernate.hbm2ddl.auto設置每次都生成數據庫表結構
2.hibernate.hbm2ddl.import_files_sql_extractor 開啟腳本多行執行。
3.javax.persistence.schema-generation.database.action 數據庫每次都是先drop再重新生成
4.javax.persistence.schema-generation.create-source 生成方式是自定義的腳本
5.javax.persistence.schema-generation.create-script-source 腳本的位置。
參考:
http://docs.oracle.com/javaee/7/tutorial/persistence-intro005.htm