我现在项目中遇到一个数据设计的问题,即:
我有一个文档类(IncDocument),它基本上是一个公共模块类,会在多个其它的类中作为属性出现。如会议类(Conference),论文类(Paper)等,包含了name, size, label, description, url 等属性。
如:现在在Conference中引用到了该类,即: Set documents = new HashSet();
那这个时候IncDocument和Conference的对应关联关系该怎么处理呢?
是一对多吗(一次会议对应多个会议文档)? 如果是,那在IncDocument数据表中应该有一个Conference_ID之类的外键来对应Conference的ID。那如果这样的话,我在Paper类中也会有类似的定义,是否在IncDocument表中再增加一个Paper_ID之类的外键,如果再有更多其它的类似的类中有定义的话,则会有更多的外键存在,肯定不符合IncDocument类公共的要求,况且考虑到项目的扩展性,现在还不知道会有多少类会引入到IncDocument集合,总不至于扩展一次更改一次数据库结构吧。另外,如果用一对多,外键来连接的话,如果某个IncDocument并没有被任何Conference引用,只是一个Paper的文档引用,那在数据库中该IncDocument表的Conference_ID字段怎么处理?由于外键约束,它必须是一个实际存在的Conference的ID。
是多对多吗?如果是,引入中间表,那在IncDocument类中是否应该出现 Set conferences = new HashSet() 之类的定义,相应的还会有 Set papers = new HashSet() 等等其它的集合定义?但这些集合属性不应该是IncDocument的直接属性,而且定义好之后对于以后的扩展很不利。再说同上一对多关联,现在还不知道会有多少这样的集合属性会引用到IncDocument类。
小弟对Hibernate的关联关系研究得不是很多,不明白在这里应该怎么定义它们之间的关系。不知道在Hibernate里面有没有所谓的单向多对多关联,即:引入中间表,这样IncDocument表中不需要定义外键(不同与一对多)。在Conference等表中设置Set documents = new HashSet();之类的集合属性,但是IncDocument中不需要加入Set conferences = new HashSet() 之类的定义。如果有,映射文件中应该怎么配置呢?
希望各位解决过此类问题的高手们给点意见,或者熟悉Hibernate的兄弟们指点一下,给出一个数据表及类关联的设计方案,谢了!!!!!
分享到:
- 2008-03-12 11:29
- 浏览 1088
- 评论(0)
- 论坛回复 / 浏览 (0 / 1322)
- 查看更多
相关推荐
【标题】:“Hibernate 映射文件自动生成” 在Java开发中,Hibernate是一个广泛使用的对象关系映射(ORM)框架,它极大地简化了数据库操作。Hibernate通过XML或注解方式将Java类与数据库表进行映射,使得开发者可以...
"自动生成 Hibernate 映射文件和实体类" 自动生成 Hibernate 映射文件和实体类是使用 MyEclipse 工具来实现的,这可以大大提高开发效率,减少开发时间。下面将详细介绍如何使用 MyEclipse 自动生成 Hibernate 映射...
### Hibernate映射笔记详解 #### Hibernate映射文件与配置关系 Hibernate映射是ORM(对象关系映射)框架中的一项关键技术,它允许开发者在数据库表和Java对象之间建立映射关系,从而简化了数据访问层的开发工作。...
hibernate映射文件是Java开发中用于对象关系映射(ORM)的重要组成部分,它将数据库表与Java类之间的关系进行定义,使得开发者无需编写大量的SQL语句,就能实现对数据库的操作。`生成hibernate映射文件工具`是为了...
在开发Java应用,尤其是涉及到数据库交互的时候,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而MyEclipse作为一款集成开发环境,提供了对Hibernate的全面支持,包括自动生成...
### 关于《Beginning Hibernate: For Hibernate 5》的知识点总结 #### Hibernate 5 概述 - **定义**: Hibernate 是一款流行的开源对象关系映射(ORM)框架,它简化了数据库与 Java 对象之间的交互过程。 - **版本**...
在给定的文件中,`Hibernate 第二次课.docx` 可能包含了关于 Hibernate 映射和查询的详细讲解,涵盖了如何配置项目、创建实体类、编写映射文件和执行查询等步骤。`第二章mysql.sql` 文件可能是用于配合 Hibernate ...
### 常用Hibernate映射配置详解 #### 1. hibernate-mapping节点解析 `hibernate-mapping`节点是Hibernate映射文件中的顶级节点,用于定义一系列配置选项,控制整个映射文件的行为和映射规则。这些配置包括数据库...
【描述】中的“很多Hibernate要用的东西”,暗示了这个压缩包可能包含了关于Hibernate的各种资源,比如配置文件、实体类、映射文件等,这些内容对于理解并使用Hibernate进行数据库操作是至关重要的。作者的评价“我...
3. 配置Hibernate:在Hibernate的配置文件(如`hibernate.cfg.xml`)中,添加映射文件路径,让Hibernate知道哪些映射文件需要被加载。 4. 使用工具或API生成数据库:有了映射文件,你可以使用Hibernate的`...
在Java开发中,Hibernate是一个非常流行的ORM(对象关系映射)框架,它允许开发者使用面向对象的方式来操作数据库,而无需关心底层SQL语句。映射文件是Hibernate中的关键元素,它定义了Java实体类与数据库表之间的...
标题中的“Spring+Hibernate 自动映射”是指在Java Web开发中,利用Spring框架与Hibernate ORM工具进行数据层的整合,实现对象关系映射(ORM)的自动化处理。这一技术结合了Spring的强大依赖注入(DI)和事务管理...
在IT行业中,开发Java应用程序时,常常需要使用到ORM(对象关系映射)框架,比如Hibernate,它能够帮助我们把数据库中的数据与Java对象进行映射,从而简化数据操作。而MyEclipse作为一款强大的Java集成开发环境,...
这是一个文档文件,很可能是作者详细记录的关于Hibernate映射的学习笔记或教程,包含了作者在学习和应用Hibernate映射过程中的思考、问题解决步骤以及实用示例。 **综合知识点:** 1. **Hibernate ORM基础**:介绍...
Hibernate,作为Java中广泛使用的对象关系映射(ORM)框架,提供了一种优雅的方式来映射枚举类型到数据库。本文将深入探讨Hibernate如何映射枚举类型,并给出实际应用示例。 ### Hibernate枚举映射方式 #### 1. `@...
hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,hibernate,包含4个说明文档,分别详细解说了hibernate关联映射的...
为了解决这一问题,Hibernate应运而生,它通过映射机制将Java对象与数据库表进行关联,从而实现了数据的无缝持久化。 #### Hibernate映射的关键概念 - **实体类(POJO)**:在Hibernate中,实体类是指那些被设计来...
【标题】:“Hibernate映射数据库表插件” 在Java开发中,Hibernate是一个强大的对象关系映射(ORM)框架,它简化了数据库与Java对象之间的交互。这个“Hibernate映射数据库表插件”是为了帮助开发者更方便地管理和...
在IT行业中,数据库管理和对象关系映射(ORM)框架是至关重要的组成部分,特别是对于Java开发者而言,Hibernate是一个广泛使用的ORM工具。本篇文章将深入探讨如何在Hibernate中映射树形结构,这是一种处理复杂数据...