Hibernate的多对一
来源:互联网 发布:nasa直播软件 编辑:程序博客网 时间:2024/04/30 10:12
之前一直很迷惑,Hibernate的多对一和数据库表的多对一有什么关系?答案居然是没有关系。
Hibernate的多对一主要是为了便于管理数据库,主要是CIDR操作。
而数据库的多对一则是为了维持数据库的参照完整性。
两者之间没有直接的关系。
比如建立一个数据库,有文章、分类两个表
文章(文章编号,分类编号、文章内容)
分类(分类编号、分类名称)
文章表的分类编号属性参照分类表的主键,属于多对一的关系。这属于数据库的范畴,与Hibernate没有关系。
而在代码中,Hibernate的多对一配置是这样的。
Message类:
private int msg_id;
private int category_id;
private String content;
priavte Category category;
Message.hbm.xm配置l:
<many-to-one name = "category" class = "entity.Category"
column = "category_id">
</many-to-one>
Category类:
private int category_id;
private String Category_name;
private Set<Message> messages = new HashSet<Message>();
Category.hbm.xm配置l:
<set name = "messages" inverse = "true" cascade = "all">
<key column = "category_id"></key>
<one-to-many class = "entity.Message"></one-to-many>
</set>
上面的配置实现了文章与分类的双向多对一关联,这里的关联与数据库外键参照没有一对一的关系,而是为了更好的描述两个实体之间的包含关系,使得通过一个实体可以方便的获取与其关联的对象实体。实现的时候只要调用getMessages()方法就可以了。Hibernate可能是对Message表进行了一次查询,获取了所有分类号为指定编号的元组。
- Hibernate的多对一
- Hibernate的多对一
- Hibernate多对一
- hibernate多对一
- hibernate多对一
- hibernate多对一...
- hibernate多对一
- hibernate 多对一
- Hibernate多对一 的处理
- hibernate的多对一问题
- Hibernate多对一 的处理
- hibernate多对一的操作解析
- hibernate的单向多对一
- hibernate 多对一的双向理解
- Hibernate的单向多对一映射
- Hibernate Gossip: 多对一
- Hibernate多对一实例
- hibernate多对一映射
- android典型代码系列(三)------数据库URI收集
- Fatal error encountered during command execution
- Eclipse中使用lombok
- 优秀项目经理的六个习惯
- android典型代码系列(四)------android全屏代码
- Hibernate的多对一
- iOS 获取通讯录联系人信息
- Ionic在线学习博文导读
- 《The Road Less Traveled》,心智成熟之旅
- 分布式协调服务ZooKeeper
- Android 关于selcrot的使用声明
- 编译工具链(GCC)建立
- jQuery.on函数使用详解与源码分析:
- 杭电5585 Numbers