浏览 5276 次
锁定老帖子 主题:Hibernate中的各种关系小结
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2003-09-25
我把众多的关系分成两大类:类与表关系, 类之间关系 一般的ORM都会有一对一,一对多,多对多关系,它指的是类之间的关系或表之间关系。一对一通过共享同一个primary key, 一对多,通过foreign key, 多对多通过关联表实现。当然,我们也可以把一对一当成special的一对多。多对多分成两个一对多关系。以上说的是在数据库中的实现, 在类中,我们是用引用或collection容器实现。 类之间关系还包括:自嵌套(self nested),子类(subclass),组件(component),联合子类(joined subclass) 1.只在数据库中与父表映射成一张表的有:component, self nested 2.数据库中与父表映射成不同的两张表的有:joined subclass (could be reusable) 3. subclass 即与父表映射成一张表, 也可以与父表映射成不同的两张表。一张表的话,是把所有的hierarchy全放在一张表中,多表的话是把每一个subclass映射成一张表. 类与表关系有: 一类对多表, 一表对多类 Hibernate在实现一表对多类时非常灵活,但一类对多表还不行,尽管我们也可以通过classpersistence来实现,但也仅仅是动态的映射了一表对多类的情况而已, For example, dynamicly map current table or history table. 一表对多类,也就是我上面所说的 "类之间关系component, self nested“ 通过这类之间关系来实现一表对多类的情况。 还有一种关系是单向与双向关系,它仅仅表示类之间相互引用的情况, 在数据库表之间只能是一种双向关系,这是数据库本身的限制。单向与双向关系可以与上面谈到的关系混合使用,其目的也是从OO角度去考虑的。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |