У меня есть база данных с пользователями и их паролями.
Когда я запускаю свое приложение, я создаю некоторых пользователей с ролями и сохраняю их в базе данных.
Мой пользовательский объект:
@Entity
@Table(name = "USERS")
public class User {
@Id
@Column(name = "USERNAME", nullable = false, unique = true)
private String username;
@Column(name = "PASSWORD", nullable = false)
private String password;
@Column(name = "ENABLED", nullable = false)
private boolean enabled = true;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "user", fetch = FetchType.EAGER)
private Set<UserRole> userRole = new HashSet<>();
...getters and setters
и сущность userRole
@Entity
@Table(name = "user_roles")
public class UserRole {
@Id
@Column(name = "ROLE")
private String role;
@ManyToOne(fetch = FetchType.EAGER)
@JoinColumn(name = "USERNAME")
private User user;
роль столбца уникальна = по умолчанию false, но когда я добавляю userA с ролями: admin, user, а затем userB с ролями: user, запись userB - пользователь перезаписывает запись userA - пользователь. Может кто-нибудь указать, в чем моя ошибка?
Я использую Hibernate 5 + Spring 5