2017-08-31 48 views
0

我用jpa和hibernate实现多对多关系和四个表

我有一个多对多的关系。

@Entity 
public class ServicePackages { 

    ... 
    @ManyToMany 
    private List<Services> services; 
    ... 
} 


@Entity 
public class Services 
    ... 
    @ManyToMany 
    private List<ServicePackages> servicePackages; 
} 

为什么我得到4表?

service_packages servies services_service_packages service_packages_services

我想拿到3

回答

2

A M-N的关系应标记为双向得到一个连接表。您目前有两个独立的M-N关系,因此连接表将不会共享,您可以获得2.

在M-N关系的一侧定义mappedBy以使其成为双向。如

@ManyToMany(mappedBy="servicePackages") 
private List<Services> services; 
+0

对谁坚持有影响? –

+0

设置关系的双方是需要牢记的事情。 –