hibernate中 one-to-many 、many-to-one、many-to-many 在什么情况下用?

解决方案 »

  1.   

    对象之间在是什么样的一个关系,在数据库中又有什么样的关系。
    在表达这些关系的时候就需要使用这些了
    one-to-many:一对多的关系
    例如:一个人可以有N个房产证,一个房产证只会属于一个人。
    数据库里面,人是一张表,房产证是一张表,那么这两个表就是一对多的关系。反过来就是manytoone
    many-to-many:多对多的关系
    例如:一个老师教N个学生,而一个学生有N个老师。
    在数据库里面,老师是一张表,学生是一张表,通常会建立中间的关系表,把两个表的主键放在中间表做联合主键来表达多对多的关系。
      

  2.   

    one-to-manay和manay-to-one都是主从表关系在hibernate中的描述,在java中,就是一个对象包含多个子对象,一般的子对象用list集合表示
      

  3.   

    many-to-many,用得我不多,没把握。
    many-to-one一般在程序中表现为子表对象里存储一个主表对象
      

  4.   

    many-to-many:多对多的关系
    one-to-many:一对多的关系
    many-to-one:多对一
    这个在hibernate里,映射的时候,只要看是否需要映射配置文件,将你数据库里的表的关系映射出来。
    楼上已经举例子了。
     我一般用都是会选择将表的所有关系都映射到配到文件,
    那样在后续做一些特殊的查询功能里,用hql语句会很方便,
    就是选多对多。只要数据库的表与表之间有关系的我通通的映射出来。
    后面的写hql语句的一些链接什么的。通通可以通过对象点出来。
    比如说,
      两个表的引用关系,A表引用B表,映射出来的实体A中会有B的对象。
      到时候做查询就不用自己在写表的链接,直接通过,A实体里B的对象点出B实体里的变量。
      

  5.   

    这个例子很好, 楼主可以找hibernate的书看一下。
      

  6.   

    对象之间在是什么样的一个关系,在数据库中又有什么样的关系。
    在表达这些关系的时候就需要使用这些了
    one-to-many:一对多的关系
    例如:一个人可以有N个房产证,一个房产证只会属于一个人。
    数据库里面,人是一张表,房产证是一张表,那么这两个表就是一对多的关系。反过来就是manytoone
    many-to-many:多对多的关系
    例如:一个老师教N个学生,而一个学生有N个老师。
    在数据库里面,老师是一张表,学生是一张表,通常会建立中间的关系表,把两个表的主键放在中间表做联合主键来表达多对多的关系。
      

  7.   

    基本上就是数据库里的一对多,多对多关心的反应,两个po都要有xml配置文件,所以一个一对多关心,在两个配置文件中(主表和子表),是one-to-many和many-to-one