| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java EE (J2EE) и Spring > Spring security, mapping User и Role |
| Автор: 4epT 17.5.2011, 10:30 | ||||||||
Доброе утром всем) Делаю авторизацию на сайте через Spring Security. Класс отвечающий за авторизацию написал ... возникли небольшие проблемы с мапингом. Сейчас сделано вот так:
Данный вариант не работает, ругается что не правильный маппинг. Подскажите где я ошибся =) И еще есть вариант переписать с использованием @CollectionOfElements. То есть будет как то так:
Какой вариант предпочтительней ? Может у кого то есть уже готовые "красивые" варианты ?) буду благодарен! |
| Автор: MisterCleric 17.5.2011, 10:44 | ||
| Привет. Вообще мепинг у тебя однозначно не правильный должно быть так:
Т.е. у тебя есть еще третья таблица, которая хранит связь user-roles. Ведь может же один user иметь несколько ролей. И с другой стороны - одной роли могут принадлежать несколько users. |
| Автор: 4epT 17.5.2011, 11:02 | ||
| Во, то что нужно ... у меня структура БД была изначально так и построена ... через таблицу RoleCasts были связаны роли и юзеры, но не знал то можно делать такой мапинг. Единственное хотелось бы уточнить...
Тут @JoinTable(name = "USERROLELINK" - это имя энтити которое отвечает за связь, следующие два параметра "USERID" и "ROLEID" - это поля из того самого энтити. Я правильно понял ? Если не сложно приведи пожалуйста мапинг таблицы USERROLELINK и Role =) |
| Автор: MisterCleric 17.5.2011, 11:06 |
| В том той дело, что меппинга таблицы USERROLELINK у меня нет. Это в чистом виде реализация в БД связи многие-ко-многим. Она просто содержит внешние ключи на Users & Role, а "USERID" и "ROLEID" это как раз имена этих колонок, которые в свою очередь ссылаются на users.id & role.id соответственно. Маппинг таблицы Role очень простой: id & name. |
| Автор: 4epT 17.5.2011, 11:10 |
| Значит мапинг делается только для таблицу User ? Тогда я вообще не понимаю как вообще хибер вытащит роли для юзера, если нигде не указано что ROLEID как то связано с id из таблицы Role ... |
| Автор: MisterCleric 17.5.2011, 11:18 | ||
| Ясно. Вот такой маппинг:
|
| Автор: 4epT 17.5.2011, 11:22 |
| Это я понял =) спасибо большое) сегодня сделаю так .. =) А со стороны БД должны быть настроены как то foregin key ? |
| Автор: MisterCleric 17.5.2011, 11:23 |
| Однозначно должны. Это же БД. Твоя таблица "многие-ко-многим" должны иметь внешние ключи на те таблицы, которые она связывает |
| Автор: 4epT 17.5.2011, 11:25 | ||
Вот теперь я точно понял как это все работает) спасибо большое! |