sql >> Database >  >> RDS >> Mysql

JPA houdt veel tot velen aan

Ok allereerst bedankt aan Mikko voor het leiden van mij naar het antwoord. Ik wilde gewoon een antwoord plaatsen dat direct nuttig zou kunnen zijn voor iemand anders die zich in de positie zou kunnen bevinden waarin ik me bevond. Dit is ook gebaseerd op een Eureka-moment, dus het is misschien technisch niet correct, maar dit is hoe ik het zie.

Het grote probleem waarmee ik werd geconfronteerd, was dat ik in MySQL de overbruggingstabel als een afzonderlijke tabel kon zien! (sorry dat ik geen afbeelding van mijn EER-diagram kan plaatsen, maar ik schijn op dit moment niet genoeg privileges te hebben) Dus ik ging ervan uit dat Java de overbruggingstabel ook als een tabel zou zien! Nou dat doet het niet. Die overbruggingstabel bestaat niet echt in Java als een conventionele tabel, maar wordt in feite vertegenwoordigd door het verzamelingstype tegenoverliggende tabellen dat u eraan associeert.

De gemakkelijkste manier om het voor mij te zien, was door de overbruggingstabel volledig te vergeten en me te concentreren op de twee 'echte' tabellen en de gegevens daarin te associëren. De volgende code is GEEN best practice omdat ik gewoon de role_id instel, maar het is prima om mijn punt te laten zien.

List<Roles> userRoleList = new ArrayList<Roles>();

Users currentUser = new Users();
currentUser.setUserId(userId);
currentUser.setUsername(email);
currentUser.setPassword(password);

Roles userRole = new Roles();
userRole.setRoleId("2");

userRoleList.add(userRole);
currentUser.setRolesCollection(userRoleList);

getUsersFacade().create(currentUser);

Ik hoop dat dit iemand anders helpt die worstelt met veel tot veel relaties.

(NB. Ik heb de originele vraagcode aangepast om voor het gemak een lijst te gebruiken in plaats van een verzameling, maar u kunt net zo goed elk ander type gebruiken dat aan uw behoeften voldoet.)



  1. Kan ik de naam krijgen van alle tabellen van de SQL Server-database in de C#-toepassing?

  2. Retourneer een boolean van een PHP-bestand naar het AJAX-bestand - Volg-knop

  3. ORA-65096-fout oplossen bij het maken van geautomatiseerde tests in Django met behulp van Oracle

  4. Detecteren of een waarde ten minste één numeriek cijfer bevat in PostgreSQL