国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

Hibernate項目中工具箱指南

2019-11-17 06:04:33
字體:
來源:轉載
供稿:網友

    通過Hibernate項目中提供的幾個命令行工具(他們也被當作項目的一部分不斷得到維護),還有XDoclet,Middlegen和AndroMDA內置的對Hibernate的支持,可以在幾個不同的環境(SQL,java代碼,xml映射文件)中進行相互轉換(roundtrip)。

Hibernate的主發行包中附帶了最重要的工具(甚至在Hibernate內部也可以快速調用這個工具):

  • 從映射文件到DDL schema的生成器(也就是SchemaExport和hbm2ddl)

Hibernate項目直接提供的其他工具在一個單獨的發行包中發布,Hibernate Extensions。這個發行包包含了下列任務的工具:

  • 從映射文件到Java源代碼的生成器(也就是CodeGenerator,hbm2java)

  • 從已編譯的Java類或者帶有XDoclet標記的Java源代碼生成映射文件(它們是MapGenerator,class2hbm)

    實際上Hibernate Extensions里面還有一個工具:ddl2hbm。但是它已經被廢棄了,已經不再被維護了。Middlegen完成了同樣的任務,并且更加出色。

對Hibernate提供支持的第三方工具有:

  • Middlegen (從現有的數據庫schema中生成映射文件)

  • AndroMDA ( 使用MDA思想(Model-Driven Architecture ,模型驅動體系)的代碼生成器,它從UML圖和其XML/XMI等價形式中生成持久化類的代碼)

    這些第三方工具沒有在這篇指南中說明。請查閱Hibernate 網站得到關于它們目前的情況。(Hibernate主發行包中有關于整個網站的快照)

15.1. Schema 生成器(Schema Generation)

    可以從你的映射文件使用一個命令行工具生成DDL。在Hibernate主發行包的hibernate-x.x.x/bin目錄下有一個批處理文件。

    生成的schema包含有對實體和集合類表的完整性引用約束(主鍵和外鍵)。涉及到的標示符生成器所需的表和sequence也會同時生成。

在使用這個工具的時候,你必須 通過hibernate.dialet屬性指定一個SQL方言(Dialet)。

15.1.1. 對schema定制化(Customizing the schema)

    很多Hibernate映射元素定義了一個可選的length屬性。你可以通過這個屬性設置字段的長度。 (假如是Or, for numeric/decimal data types, the PRecision.)

   有些tag接受not-null屬性(用來在表字段上生成NOT NULL約束)和unique屬性(用來在表字段上生成UNIQUE約束)。

    有些tag接受index屬性,用來指定字段的index名字。unique-key屬性可以對成組的字段指定一個組合鍵約束(unit key constraint)。目前,unique-key屬性指定的值并不會被當作這個約束的名字,它們只是在用來在映射文件內部用作區分的。

示例:

<property name="foo" type="string" length="64" not-null="true"/><many-to-one name="bar" foreign-key="fk_foo_bar" not-null="true"/><element column="serial_number" type="long" not-null="true" unique="true"/>

另外,這些元素還接受<column>子元素。在定義跨越多字段的類型時非凡有用。

<property name="foo" type="string"><column name="foo" length="64" not-null="true" sql-type="text"/></property><property name="bar" type="my.customtypes.MultiColumnType"/><column name="fee" not-null="true" index="bar_idx"/><column name="fi" not-null="true" index="bar_idx"/><column name="fo" not-null="true" index="bar_idx"/></property>

sql-type屬性答應用戶覆蓋默認的Hibernate類型到SQL數據類型的映射。

check屬性答應用戶指定一個約束檢查。

<property name="foo" type="integer"><column name="foo" check="foo > 10"/></property><class name="Foo" table="foos" check="bar < 100.0">...<property name="bar" type="float"/></class>



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 芦山县| 昌黎县| 天祝| 泾阳县| 西昌市| 宁阳县| 民勤县| 新密市| 额敏县| 民乐县| 新龙县| 西吉县| 庆元县| 汶上县| 长沙市| 阜南县| 青阳县| 彰化县| 施秉县| 济南市| 苗栗市| 潍坊市| 鹤山市| 滁州市| 进贤县| 攀枝花市| 吴桥县| 阆中市| 平凉市| 镇远县| 定安县| 曲靖市| 龙山县| 宁乡县| 林口县| 曲水县| 佛学| 枞阳县| 定远县| 庆元县| 如东县|