Как создать отображение @ManyToMany без спящего на первичном ключе - PullRequest
0 голосов
/ 31 декабря 2018

У меня есть две таблицы:

  • User (ID, name), где name - уникальная строка, а ID - PK
  • Role (ID, name), где ID - PK

Теперь я знаю, что могу соединить их, используя JPA

У моего пользователя:

@ManyToMany(cascade = { CascadeType.PERSIST, CascadeType.MERGE })
@JoinTable(name = "UserHasRole", joinColumns = @JoinColumn(name = "user_id"),
        inverseJoinColumns = @JoinColumn(name = "role_id"))
private List<RoleEntity> roles = new ArrayList<>(); 

И на стороне RoleEntity:

@ManyToMany(mappedBy = "roles")
private List<UserEntity> users = new ArrayList<>();

Пока все работает нормально, но я бы хотел использовать UserEntity name вместо id в @ManyToMany -отношении.Как я могу это сделать?

Мои определения столбцов в UserEntity:

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "ID")
private int id;

@Column(name = "NAME", nullable = false, unique = true)
private String name;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...