在多对多的关系设计中,一般都会使用一个中间表将他们拆分成两个一对多。
<set>标签中的"table"属性就是用于指定中间表的。
中间表一般包含两个表的主键值,该表用于存储两表之间的关系。
由于被拆成了两个一对多,中间表是多方,它是使用外键关联的,<key>是用于指定外键的,用于从中间表取出相应的数据。
中间表每一行数据只包含了两个关系表的主键,要获取与自己关联的对象集合,还需要取出由外键所获得的记录中的另一个主键值,由它到对应的表中取出数据,填充到集合中。
在中间表中需要将外键设定为<many-to-one>在这个节点里需要设定对应的class属性
<many-to-many>中的"column"属性是用于指定按那一列的值获取对应的数据。因为我们获取数据的时候,都是说指定的group有哪些user,那么user就需要从对应的表中获取。
在一对多的关系设计中,在一端用<set>的节点,这个节点里有<key>用来指定一端的id,还有一个<one-to-many>,这个节点中需要设定class属性,这个属性是指向多端的类。同时,在多端会有一个<many-to-one>的节点,这个节点的class属性是指向一端的类,在这个节点中会有一个<column>节点用来指定在多端对应的数据表中与一端对应的外键。