BelongsTo 用来完成多对一的关联映射,例如在签名的文章中的例子Post—Blog的关系:
|
|
|
|
|
|
|
设置或获取 cascade动作,指明了级联操作的类型。 |
|
|
设置或获取用来作关联的列(通称是一个外键) |
|
|
|
|
|
(可选 - 默认为 true) : 表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。即是否允许添加,Boolean 类型 |
|
|
关联是否允许空值, Boolean 类型 |
|
|
设置或获取outer join 动作,OuterJoinEnum类型 |
|
|
设置或获取target的类型 |
|
|
When implemented in a derived class, gets a unique identifier for this Attribute. |
|
|
是否使用唯一性约束, Boolean 类型 |
|
|
(可选 - 默认为 true) : 表明用于UPDATE 和/或 INSERT 的SQL语句中是否包含这个被映射了的字段。即是否允许更新。 |
其中,Cascade是一个枚举类型,有以下成员:
|
None |
不进行任何级联操作,默认操作 |
|
All |
级联Save、Update、Delete操作 |
|
SaveUpdate |
级联Save、Update操作 |
|
Delete |
级联Delete操作 |
|
Auto |
自动,默认类型 |
|
True |
进行外连接 |
|
False |
不进行外连接 |
HasMany用来完成一对多的映射,如一个Blog有多个post:
|
可选 - 默认值为 property,用来访问属性值的策略。 |
|
|
|
|
|
|
|
|
指定级联操作,指明哪些操作会从父对象级联到关联的对象 |
|
|
指定对应的外键 |
|
|
|
|
|
当RelationType 为map时使用 |
|
|
当RelationType 为map时使用 |
|
|
默认是 false,标记这个集合作为双向关联关系中的方向一端 |
|
|
是否延时加载,booel类型,默认为false |
|
|
|
|
|
指定表的字段(一个或几个)再加上asc或者desc(可选), 定义Map,Set和Bag的迭代顺序 |
|
|
|
|
|
表的schema的名称 |
|
|
指定集合的排序顺序,当RelationType 为set时使用 |
|
|
指定持久化类所关联的数据库表名,如果表名与类名相同,可以省略 |
|
|
|
|
|
附加的SQL Where子句 |
HasAndBelongsToMany
asAndBelongsToMany 用来完成多对多的关联映射。看一下下面的表结构:
一个company有people,并且person有很多company,使用HasAndBelongsToMany可以实现这种关联映射:
注意一定要指定要指明关联的表和ColumnRef、ColumnKey。
HasAndBelongsToMany 的属性如下表所示:
|
|
|
|
|
|
|
|
|
|
设置或获取 cascade动作,指明了级联操作的类型。 |
|
|
本实体类于另一个实体类关联的外键 |
|
|
另一实体类的外键 |
|
|
|
|
|
当RelationType 为map时使用 |
|
|
当RelationType 为map时使用 |
|
|
默认是 false,标记这个集合作为双向关联关系中的方向一端 |
|
|
指定是否延迟加载关联对象 |
|
|
|
|
|
指定表的字段(一个或几个)再加上asc或者desc(可选), 定义Map,Set和Bag的迭代顺序 |
|
|
关系类型 |
|
|
指定Schema的名字 |
|
|
指定集合的排序顺序,当RelationType 为set时使用 |
|
|
指定持久化类所关联的数据库表名,如果表名与类名相同,可以省略 |
|
|
|
|
|
附加的SQL Where子句 |
OneToOne
一个表与另一个表通过共享主键来完成一对一的关联映射:
OneToOne有如下属性:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|