结合使用Hibernate和XDoclet
转载自: http://blog.163.com/scpazd_1982/blog/static/1125932420076933421634/
Hibernate本身没有提供生成映射文件的机制。我们可以使用一种新的工具--XDoclet,作为一种通用的代码生成工具,XDoclet可用于生成任何类型的文件,包括Hibernate映射文件。XDoclet使用标准JavaDoc 工具的一个变种,来读取Java源文件并将其写入到新文件中去。在java源文件中插入特殊的JavaDoc标签之后,Xdoclet将能够读取这些标签,并根据这些信息生成映射文件。 标签只有放置到合适的地方才有效果。
- @Hibernate .class 标签
这个标签只能放在类级JavaDoc注释中。要放在类声明之前,紧靠着类的声明。
type 指定该属性的Hibernate类型 属性的返回值。主码通常是string或Long
column 包含列名 属性名
unsaved-value 包含用于区分临时对象和持久化对象的值 NUll
length 指定数据列的长度 属性类型的默认长度。对于Long,他是给定的,对于String,可能需要指定。
column 指定要将该属性要持久化到哪列 属性的名称
length 指定列的长度 属性的默认长度
not-null 指定是否执行非空约束 false
unique 指定是否执行唯一性约束 false
type 指定Hibernate类型 。
length 指定列的长度 属性的默认长度或sql-type的隐含长度
not-null 指定是否执行非空约束 false
unique 指定是否执行唯一性约束 false
index 包含该列的表索引名 不创建命名索引
unique-key 用该名称创建唯一的命名约束 不创建命名索引
column 包含数据库中的列名 属性的名称
class 包含关联的持久化类 属性的类
cascade 指定如何处理从父对象到子对象的级联操作 none
unique 指定是否执行唯一性约束 false
not-null 指定是否执行空约束 false
组件属性。不需要Address。hbm。xml文件。
class 组件的全限定类名 getter方法返回的类型
prefix 包含列的前缀,让同一个实体可以有多个同类型的组件
创建集合:一对多,Speanker集合
必须使用多个互相合作的标签。
table 只用于多对多关联,包含连接的关联表名 多对多,它使用属性名
lazy 指定集合是否延迟初始化 false
sort 指定集合在内存中是否排序 集合不排序
order-by 指定获得集合的查询是否添加SQL ORDERED BY子句
inverse 指定集合是否为翻转的 false
column 集中对象的外码列名 无默认值;它是强制的。
集合中的对象总是有key元素、@Hibernate.collection-key标签和key列。
XDoclet是一个代码生成工具,让你能够从定义文件--源代码文件--生成映射文件。
- @Hibernate .id 标签
type 指定该属性的Hibernate类型 属性的返回值。主码通常是string或Long
column 包含列名 属性名
unsaved-value 包含用于区分临时对象和持久化对象的值 NUll
length 指定数据列的长度 属性类型的默认长度。对于Long,他是给定的,对于String,可能需要指定。
- @Hibernate .property 标签
column 指定要将该属性要持久化到哪列 属性的名称
length 指定列的长度 属性的默认长度
not-null 指定是否执行非空约束 false
unique 指定是否执行唯一性约束 false
type 指定Hibernate类型 。
- @Hibernate .column 标签
length 指定列的长度 属性的默认长度或sql-type的隐含长度
not-null 指定是否执行非空约束 false
unique 指定是否执行唯一性约束 false
index 包含该列的表索引名 不创建命名索引
unique-key 用该名称创建唯一的命名约束 不创建命名索引
- @Hibernate .many-to-one 标签
column 包含数据库中的列名 属性的名称
class 包含关联的持久化类 属性的类
cascade 指定如何处理从父对象到子对象的级联操作 none
unique 指定是否执行唯一性约束 false
not-null 指定是否执行空约束 false
- @Hibernate. component 标签
组件属性。不需要Address。hbm。xml文件。
class 组件的全限定类名 getter方法返回的类型
prefix 包含列的前缀,让同一个实体可以有多个同类型的组件
创建集合:一对多,Speanker集合
必须使用多个互相合作的标签。
- @Hibernate. set 标签。
table 只用于多对多关联,包含连接的关联表名 多对多,它使用属性名
lazy 指定集合是否延迟初始化 false
sort 指定集合在内存中是否排序 集合不排序
order-by 指定获得集合的查询是否添加SQL ORDERED BY子句
inverse 指定集合是否为翻转的 false
- @Hibernate. collection-key 标签
column 集中对象的外码列名 无默认值;它是强制的。
集合中的对象总是有key元素、@Hibernate.collection-key标签和key列。
XDoclet是一个代码生成工具,让你能够从定义文件--源代码文件--生成映射文件。