Причина, по которой вы получаете исключение нарушения целостности, заключается в том, что Spring Security создает таблицу соединений SEC_USER_SEC_ROLE между таблицами SEC_USER и SEC_ROLE (пользователь может иметь несколько ролей и наоборот). Для удаления объекта пользователя вы можете использовать следующий код:
Collection<SecUserSecRole> userRoles = SecUserSecRole.findAllBySecUser(user);
userRoles*.delete();
user.delete();