本人理解:
1、谁拥有外键,谁就负责维护关联关系(负责维护或控制本端与另一端关系的增、删、改、查操作。前提:要开启级联操作),即关系的拥有方;
2、在OneToMany一对多单向或双向关联关系中,外键建立在多的一方(@JoinColumn要放在多的一方);
3、在OneToOne单向或双向关联关系中,外键建立在关系的拥有方(@JoinColumn可根据需求建立在任意一方);
4、在ManyToMany单向或双向关联关系中,一端为关系的拥有方(joinColumns属性),另一端为关系的被拥有方(inverseJoinColumns属性)。