2017-08-31 1 views
0

J'utilise jpa avec la mise en œuvre d'hibernateplusieurs à plusieurs relation et quatre table

J'ai une relation plusieurs à plusieurs.

@Entity 
public class ServicePackages { 

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


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

Pourquoi j'ai 4 tables?

service_packages Servies services_service_packages service_packages_services

je pensais obtenir 3

Répondre

2

Une relation M-N doit être marqué comme bidirectionnel pour obtenir une seule table de jointure. Vous avez actuellement deux relations M-N indépendantes, et donc la table de jointure ne sera pas partagée, et vous obtenez 2.

Définissez mappedBy sur un côté de la relation M-N pour le rendre bidirectionnel. Tels que

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

il y a un impact sur qui persiste? –

+0

réglage DEUX côtés de la relation est la chose à garder à l'esprit. –