不知你是否看过hibernate的文档了,里边对以上几种关系都有详细说明,你可以到www.hibernate.org.cn下载。至于第二个问题,我建议不要在数据库里设置表间关联,只需给每个表一个主键,表间关系可以全由hibernate的mapping文件来做,这样如果需要修改表间关系就不需要去修改数据库结构,修改映射文件就可以了,很方便。
要设置数据库内的表间关系也可以,不过我没有成功过,错误的原因就是mapping里也有关系、数据库也有关系。现在我们开发的项目一般就不在数据库里设置了。

解决方案 »

  1.   

    hibernate的文档看了一下,不是很明白
    一对一是指一个对象只能对应另一个对象吗?比如一个作者只能对应一个人
    一对多就是指父子关系吗?比如一个部门有多个员工?
    多对多是指什么?
      

  2.   

    这些都是对应数据库中表的关系,
    多对多给你一个例子:
    三个TEACHER,TEACHER1,TEACHER2,TEACHER3
    三个班级CLASS1,CLASS2,CLASS3,
    每个TEACHER可以教多个班级(为了更明白些,假设是语文,物理,化学)三个老师,每个班级可以有多个老师.
      

  3.   

    one-to-one 关系是说两个关联对象的关键字值是相同的吗?
    比如Author和Person,Author有AID,而Person有PID,按文档上说的第一种主键一对一关联,那么就是两个表中的主键值相等?
      

  4.   

    刚才又看了下文档,另外有些疑问
    一对多(one to many)和多对一(many to one)应该是不一样的吧?有什么区别呢?
    谢谢参与,请继续
      

  5.   

    你说的那些关系 有个例子能说清楚
    比如你在csdn的 ID是唯一的  但是你发的帖子可以是n个 这就是1 to many的关系相反你也可以找出很多这种对象之间的关系
      

  6.   

    a 相对于 b是 one-to-many
    b 相对于 a就是 many-to-one
      

  7.   

    roominfo        hallinfo
    roomid          hallid
    hallid          halltype
    roomname        hallname
    在这里,roominfo n  :  1  hallinfo即一种大厅类型可以拥有多个房间
    反之,就是一个1 : n的关系。
      

  8.   

    这好像并不是hibernate里面的东西吧?
    看看数据库原理就知道了