Hibernate 給你的表和約束自動創建基本的schema;它甚至會根據你選擇的主鍵生成方式來創建序列。但是也有一些hibernate不會自動創建的schema特性。這包括所有高級數據庫產品特性和其他物理存儲數據的相關特性,比如tablespace.另外,你的DBA也會經常增加一些額外的schema語句來改善你的schema.DBAs應該早期就介入並且確定hibernate自動生成的schema.絕不允許不經過檢查就將自動生成的schema部署到產品中去。
如果你的產品開發步驟允許,DBA進行的改變可以反饋到把你的JAVA系統中,增加映射元數據。在許多項目中,映射元數據可以包括所有DBA 修改的必要schema變化。然後,hibernate就可以自動生成所有產品的最終schema,包含注釋、約束、索引等等。
下一節,我們給你展示如何自定義生成的schema和如何增加自由的數據庫schema組件,我們討論自定義的數據類型,額外的一致性規則,索引,還有如何替換hibernate自動生成的schema。
導出schema基本文件到一個文件
Hibernate 綁定org.hibernate.tool.hbm2ddl,SchemaExport類到主方法main(),你可以從命令行運行。這個輔助可以直接跟你的數據庫會話,並且創建schema或者寫一個文本文件,以便於你的DBA可以進行自定義優化改善。