У меня есть две таблицы:
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;