我看hibernate的时候有点迷茫。请达人帮我解惑。下面对我的迷惑的描述就拿大家都常说的class和student例子来说吧。一个class中有很多student,但是一个student只能属于一个class。我觉得在java/hibernate有两个地方体现出两者的关系,且两个地方分别都有a、b两种方案。1-在pojo类中。
a:Class里面包含List Students;或
b:Student类里面包含Class class。2-在mapping配置文件中。
a:在Class配置文件中存在 one-to-many;或
b:在Student配置文件中存在 many-to-one问题一:请问这两组方案是分别必须对应的么?还是可以交叉?——比如说,我在Class里面包含List Students,能否在mapping文件中用让Student配置文件中配置many-to-one?问题二:请问是不是无论上面两个地方怎么配置,选用哪种方案,在SQL数据库表中,只能是tbl_student表包含一个tbl_class的主键?好像不可能有办法能够让tbl_class表中的record去包含很多个tbl_student里面的id的吧?问题很初级,望不吝赐教,尽量费心说得详细些,谢谢了~

解决方案 »

  1.   

    问题一:
    不可以交叉,po类都是数据库表反向生成的。如:class表中一条记录是唯一的,而这条记录可以被student表多条记录引用。
    问题二:
    这是考虑到主表与从表的问题。class是主表,student是从表。主表了不包括从表里的数据,从表只负责引用主表就可以了
      

  2.   


    OK。感谢回复。我自己弄明白我的问题了。我倒不是用的反向生成,而是自己手动写这些类和mapping文件。不过原来我没弄懂pojo类和mapping之间的关系。现在知道不能交叉了。