多对多的关系和四个表

时间:2017-08-31 15:30:39

标签: hibernate jpa many-to-many

我将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

1 个答案:

答案 0 :(得分:2)

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

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

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