Моя таблица user-> role relationship была магически и случайным образом удалена из нее. Мы не можем воспроизвести проблему, но это происходит в производственной среде. Это происходит только в prod, и только, похоже, происходит, когда многие люди используют систему, которая заставляет нас думать, что это проблема параллелизма. Ниже приведено мое определенное отображение.Слитки Hibernate JoinTable случайно удаляются как-то
У нас есть только несколько мест, которые изменяют пользователей или роли. Ни одно из этих мест не вызовет проблемы! Кроме того, никакая другая система не работает с базой данных.
- Вход в систему сохраняет пользователя, чтобы установить дату последнего входа в систему или заблокировать их, если они ошибочно вошли в систему слишком много раз.
- Управление пользователями - изменение пользователя и назначение ролей. Это может добавлять или удалять роли из отношения, но выполнение любого действия не приводит к возникновению проблемы.
- Управление ролями - создание или редактирование роли, но вы не можете назначать пользователей ролям в этом интерфейсе.
- Пользователи могут изменять свой пароль, что приводит к экономии их записи пользователя
//User.java
@ManyToMany(fetch = FetchType.LAZY)
@JoinTable(name = "user_roles", joinColumns = {
@JoinColumn(name = "user_id", referencedColumnName = "id") },
inverseJoinColumns = {@JoinColumn(name = "role_id") })
public Set<Role> getRoles() {
return this.roles;
}
//Role.java
@ManyToMany(fetch = FetchType.LAZY, mappedBy = "roles")
public Set<User> getUserRoles() {
return this.userRoles;
}
Я по-прежнему получаю случайные удаления, к сожалению ... – chrislhardin