Mysql
 sql >> база данни >  >> RDS >> Mysql

JPA продължават много към много

Добре, първо благодаря на Mikko, че ме доведе до отговора. Просто исках да публикувам отговор, който може да бъде пряко полезен за всеки друг, който може да е в позицията, в която бях. Освен това това се основава на момент от Eureka, така че може да не е технически правилен, но аз го виждам така.

Големият проблем, пред който се сблъсквам, беше, че в MySQL можех да видя мостовата таблица като отделна таблица! (съжалявам, че не мога да публикувам изображение на моята EER диаграма, но изглежда нямам достатъчно привилегии в момента) Така че предположих, че Java също ще види мостовата таблица като таблица! Ами не става. Тази свързваща таблица всъщност не съществува в Java като конвенционална таблица, тя всъщност е представена от противоположния тип колекция от таблици, която свързвате с нея.

Най-лесният начин да го видя за мен беше да забравя напълно свързващата таблица и да се концентрирам върху двете „истински“ таблици и да асоциирам данните в тях. Следният код НЕ е най-добрата практика, тъй като просто задавам role_id, но е добре само да покажа моята гледна точка.

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);

Надявам се това да помогне на всеки друг, който се бори с много към много връзки.

(Забележка. Редактирах оригиналния код на въпроса, за да използвам списък вместо колекция за улеснение, но можете също да използвате всеки друг тип, който отговаря на вашите нужди.)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Вземете втората най-висока стойност в MySQL таблица

  2. Откриване на счупени символи utf8 в MySQL

  3. Групирайте множество mysql резултата по стойност на една колона

  4. java.lang.AbstractMethodError:com.mysql.jdbc.Connection.isValid(I)Z

  5. Импортиране на data.sql MySQL Docker контейнер