日期:2014-05-18  浏览次数:20588 次

hibernate配置mapping的概念问题,求解!
我看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的吧?

问题很初级,望不吝赐教,尽量费心说得详细些,谢谢了~

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