@Entity
public class EUser {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
private int id;
@ManyToMany(fetch=FetchType.EAGER)
private List<UserRole> roles;
}
при выполнении следующего действиязначение Hibernate не удаляя из Databse
EUser approveUser = (EUser) userService.getOne(2);
approveUser.getRoles().clear();
userService.update(approveUser);
System.out.println(approveUser.getRoles().size());
он говорит, что размер равен нулю, но, когда я иду в БД в таблице EUser_UserRole
я вижу значение по-прежнему присутствует. Как это решить?
также в EUser_UserRole
он говорит
This table does not contain a unique column. Grid edit, checkbox, Edit, Copy and Delete features are not available
, как я могу удалить добавить редактировать удалить вручную ??
Если userService.update() выполняет в EntityManager.merge(), это не должно быть необходимым.ApproveUser, скорее всего, будет экземпляром управляемого объекта, если вы будете следовать предложению CycDemo о добавлении каскадирования, тогда внесение изменений в объект сущности должно «автоматически» заставить поставщика сохранения сохранить изменения в базе данных в подходящий момент. – Gimby