1.组件映射(多个java对象映射一个table)
Annotation: @Embedded
XML:<Component name="xxx"><Property name="xxx" /></Component>
如果java对象产生重名的现象,最简单的办法是在副对象上用@Column(name="xxx")将其映射为不同的属性名
2.多对一的单向关联(主从表)
Annotation: 在从表中定义一个主表的对象,并设定@ManyToOne
XML:在从表的hbm.xml中,加上<many-to-one name="xxx" column="产生外键关联的字段名" />
反过来,如果想设计成为一对多的关联
Annotation: 在主表中定义一个从表的对象(例如,private Set<从表对象Class> xxx=new HashMap<从表对象Class>(); 为什么要用Set呢,因为从表的数据是不会重复的),并设定@OneToMany。还没完,一定要再加@JoinColumn(name="产生外键关联的字段名")。不然hibernate会自动将其作为多对多的关系,进而会多生成一张中间表。
XML:在从表的hbm.xml中,加上<many-to-one name="xxx" column="产生外键关联的字段名" />