hibernate 注解 自动建表 中间表问题

情景:我的毕设有这么个关系,一个歌手对应多首歌,多个专辑,以及一个专辑对应多首歌都是一对多的关系

hibernate 注解 自动建表 中间表问题_第1张图片

hibernate 注解 自动建表 中间表问题_第2张图片

hibernate 注解 自动建表 中间表问题_第3张图片

2.运行完,自动建表

hibernate 注解 自动建表 中间表问题_第4张图片不难发现多了三张中间表

3.其实是没必要的

原因:缺少

mappedBy

mappedBy: 
1>只有OneToOne,OneToMany,ManyToMany上才有mappedBy属性,ManyToOne不存在该属性; 
2>mappedBy标签一定是定义在被拥有方的,他指向拥有方; 
3>mappedBy的含义,应该理解为,拥有方能够自动维护跟被拥有方的关系,当然,如果从被拥有方,通过手工强行来维护拥有方的关系也是可以做到的; 

4>mappedBy跟joinColumn/JoinTable总是处于互斥的一方,可以理解为正是由于拥有方的关联被拥有方的字段存在,拥有方才拥有了被拥有方。mappedBy这方定义JoinColumn/JoinTable总是失效的,不会建立对应的字段或者表。

稍加修改,删除建的表重新生成:

hibernate 注解 自动建表 中间表问题_第5张图片

hibernate 注解 自动建表 中间表问题_第6张图片


中间表没有了:

hibernate 注解 自动建表 中间表问题_第7张图片

你可能感兴趣的:(Hibernate,毕设那些事,一对多,mappedBy)