Цель моего проекта - иметь администраторов / менеджеров / сотрудников / клиентов.После входа в систему пользователь в зависимости от роли будет иметь следующие функции:
- Обновление информации о сотрудниках в списке сотрудников (менеджеры, администраторы)
- Просмотр списка клиентов (менеджеры, администраторы, сотрудники)
- Обновление собственной информации пользователей (менеджер, администратор, сотрудник, клиенты)
Проблема, на которой я застрял в течение нескольких недель, заключается в том, что при обновлении любой информации о пользователях она автоматически удаляет эту информацию.роль пользователей из базы данных.Это лишает их доступа к веб-приложению.
Я провел некоторое исследование, пытаясь выяснить это, но не нашел надежного ответа.Любая помощь будет оценена, спасибо!
Employee.java
@ManyToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
@JoinTable(name = "employee_roles",
joinColumns = @JoinColumn(name = "employee_id"),
inverseJoinColumns = @JoinColumn(name = "role_id"))
private Collection<Role> roles;
EmployeeController.java -
@PostMapping("/saveEmployee")
public String saveEmployee(@ModelAttribute("employee") Employee theEmployee) {
employeeService.saveEmployee(theEmployee);
return "redirect:/employee/list";
}
EmployeeDaoImpl.java -
@Override
public void saveEmployee(Employee theEmployee) {
// get current hibernate session
Session currentSession = sessionFactory.getCurrentSession();
// save Employee
currentSession.update(theEmployee);
}
Журналы -
Hibernate: update employee set address=?, email=?, first_name=?, last_name=?, password=?, phone_number=?, username=?, zipcode=? where id=?
Hibernate: delete from employee_roles where employee_id=?
редактировать:
Role.java
Entity
@Table(name = "role")
public class Role {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Column(name = "id")
private Long id;
@Column(name = "name")
private String name;
public Role() {
}
public Role(String name) {
this.name = name;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "Role{" + "id=" + id + ", name='" + name + '\'' + '}';
}
}