Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374

Обновление БД при логине

19.05.2017, 04:05. Показов 968. Ответов 17
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Нужно что бы когда юзер логинился, в БД обновлялся столбец userrank, юзер получает рандомное число и но прибавляется к его рангу.

Проблема в том, что в JpaRepository нету метода обновления кого то столбца в базе (или я не нашел и не понял).
https://github.com/heros79/TaskMLab проект

Что можете посоветовать.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
19.05.2017, 04:05
Ответы с готовыми решениями:

Использование прокси при логине
Доброго новогоднего дня. У меня вопрос, есть у меня логин в ВК, работает норм, но если добавляю коннект с помощью прокси - получаю...

Моргание экрана при логине
Запускаю компьютер - нужно ввести пароль(начинает моргать экран) все ввожу правильно и жму enter. пишет: добро пожаловать, но эран все еще...

Фильтрация символов при логине
Вот при логине на сайт, я зделал для себя функцыю для фильтрации всяких ненужных символов, вот код function check($str) { if...

17
Эксперт Java
3639 / 2971 / 918
Регистрация: 05.07.2013
Сообщений: 14,220
19.05.2017, 09:45
достаешь из репозитория юзера, которого надо обновить, меняешь, делаешь repo.save(newUser)
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
19.05.2017, 10:57  [ТС]
xoraxax, по другому никак, обновлять все столбцы?
0
1552 / 918 / 193
Регистрация: 26.03.2010
Сообщений: 3,105
19.05.2017, 11:05
нативный апдейт напишите
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
19.05.2017, 11:08  [ТС]
neske, писал через Factory но там что то при выборке (FROM User user) ошибку кидает, что то с версиями не то
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
19.05.2017, 12:08
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
писал через Factory
Цитата Сообщение от neske Посмотреть сообщение
нативный апдейт напишите
вам же сказали. Пишите нативный апдейт. Какая фактори?
Java
1
@Query("UPDATE user set bla=?1 where id = ?2" native=true)
точный синтаксис непомню, думаю сможете нагуглить
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
21.05.2017, 17:17
Цитата Сообщение от DavidKarchikyan
по другому никак, обновлять все столбцы?
Все не обновляется, только необходимые, да и в любом случае это 1 запрос, а в прочем вам сказали верно, нативный запрос - самое то, только @Modifying не забудьте добавить(вроде именно такая аннотация
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
21.05.2017, 19:10  [ТС]
Java
1
2
3
4
@Transactional
    @Modifying
    @Query("UPDATE User users SET userrank = 'setRank()' WHERE username = 'user.getUserName()'")
    int setRank (@Param("userrank") int userrank);
не работает, а указание native выдает ошибку
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
21.05.2017, 22:22
DavidKarchikyan, наверное надо погуглить...у вас хрень какая-то написана....

Напишите этот запрос так чтобы он работал в клиенте вашей БД. Затем скопируйте его к себе в код.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
21.05.2017, 23:46  [ТС]
KEKCoGEN,
Java
1
2
3
4
    @Transactional
    @Modifying
    @Query(value = "UPDATE users SET userrank = :userrank WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank);
Нагуглил но все равно не работает

Добавлено через 45 минут
https://github.com/heros79/TaskMLab
Буду рад и признателен если укажете на мои ошибки, первый ЕЕ проект
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
22.05.2017, 05:07
Цитата Сообщение от DavidKarchikyan
:userrank
На сколько помню spring data не поддерживает именованные параметры, используйте ?1, ?2 и т.д.

К тому же у вас в запросе еще есть переменная username, которая никак не передается
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 12:02  [ТС]
Цитата Сообщение от LeX Посмотреть сообщение
?1, ?2
это нумерация столбцов?

Добавлено через 14 минут
или нумерация параметров функции?

Добавлено через 11 минут
Java
1
2
@Query(value = "UPDATE users SET userrank = :userrank WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank, @Param("username") String username);
и так
Java
1
2
@Query(value = "UPDATE users SET userrank = ?1 WHERE username = :username", nativeQuery = true)
    int setRank (@Param("userrank") int userRank, @Param("username") String username);
не выдает ошибку, но при смене :username на ?2 выдает ошибку

Добавлено через 5 минут
сори нет ошибок кавычку удалили просто)))

Добавлено через 29 минут
Не выходит не фига(((
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 14:17
DavidKarchikyan, покажите последний вариант запроса который у вас.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 16:59  [ТС]
Java
1
2
3
4
 @Transactional
    @Modifying
    @Query(value = "UPDATE users SET userrank = ?1 WHERE username = ?2", nativeQuery = true)
int setRank (@Param("userrank") int userRank, @Param("username") String userName);
пробовал и без указания @Param

Добавлено через 2 минуты
Я думаю может вызов его неправильно сделал, в коде все работает, регистрация логин и так далее, при регистрации ранг дается заносится, список выводит. Вот только при логине ранг не меняется.

Добавлено через 2 часа 33 минуты
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
лог при любых выше перечисленных способах

Добавлено через 56 секунд
Java
1
2
3
4
5
    @Override
    @ModelAttribute(name = "saverank")
    public int saveRank(User user) {
        return userDao.setRank(user.getUserRank() + new Random().nextInt(100), user.getUserName());
    }
реализация

Добавлено через 1 минуту
Java
1
2
3
4
5
    @RequestMapping(value = {"/", "/welcome"}, method = RequestMethod.GET)
    public String welcome (User user, Model model) {
        userService.saveRank(user);
        return "welcome";
    }
контроллер
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 22:24
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
это говорит о том что все запрос работает как надо. Выводите параметры перед тем как передаете в дао и сравнивайте результат. Возможно проблема в другом месте в коде которого тут нет или проблемы нет вовсе.

Добавлено через 16 секунд
Цитата Сообщение от DavidKarchikyan Посмотреть сообщение
Hibernate: UPDATE users SET userrank = ? WHERE username = ?
это говорит о том что все запрос работает как надо. Выводите параметры перед тем как передаете в дао и сравнивайте результат. Возможно проблема в другом месте в коде которого тут нет или проблемы нет вовсе.
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 22:26  [ТС]
KEKCoGEN, Да вроде все норм но не обновляется база))
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
22.05.2017, 22:30
DavidKarchikyan, пишите ваше рандомное значение в лог прежде чем слать в ДАО. Так же пишите в лог выражение где вы ранк вычесляете и юзернейм. Остановите программу в дебаге сразу после коммита транзакции и смотрите в БД на результат (а ещё лучше напишите юнит тест)
0
64 / 64 / 26
Регистрация: 07.01.2016
Сообщений: 374
22.05.2017, 22:34  [ТС]
KEKCoGEN, помучаюсь но вижу что проблема в получении записи из БД через ДАО, не знаю почему но через JPA
findALL()получает все параметры, но getUserRank только ноль получает, хотя там значение не 0
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
22.05.2017, 22:34
Помогаю со студенческими работами здесь

Вылеты при логине в браузере Opera
Проблема в следующем - при логине на каком-либо сайте (ну естессно где авторизация требуется) через пару-тройку переходов по страницам...

Разграничение возможностей юзера (при логине)
Привет. Плз, расскажите, как делается разграничение (к примеру, контролов на странице сайта) при авторезарованном и не...

Label при неверном логине/пароле
Есть окно авторизации,хочу чтобы при вводе неправильного логина или пароля появлялся Label1.Text = "Неверный логин/пароль" на...

Как отследить ошибку при логине к Oracle?
Значит делаю я логин к базе Оракл: login, password берётся из формы. Function GetDBConnection() Dim objConnection ...

Открытие страницы в зависимости от роли при логине
protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { Error =...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
18
Ответ Создать тему
Новые блоги и статьи
1С: Программный отбор элементов справочника Номенклатура по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор под наименованию группы (на. . .
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
1С: Программный отбор элементов справочника Сотрудники по значению перечисления
Maks 21.03.2026
Установка программного отбора элементов справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru