Форум программистов, компьютерный форум, киберфорум
Java: Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5

Не удаётся выполнить запрос UPDATE к БД

24.12.2019, 01:12. Показов 1801. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток. Очень прошу помощи форумчан.
Не получается сделать запрос на обновление колонки к БД.

Имею следующий нтерфейс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
public interface StudentRepo  extends  CrudRepository<Student, Integer> {
    List<Student> findById(int id);
 
    List<Student> deleteById(int id);
 
    List<Student> findByNameAndPassword(String name, String password);
 
    @Modifying
    @Query("update Student s set.id_book = :id_book where s.id = :id_student")
    int  updateBook(int id_student, int id_book );
 
 
 
}
Класс:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
package com.example27.demo27.Student;
 
import javax.persistence.*;
import java.util.Date;
 
@Entity
public class Student {
 
    @Id
    @GeneratedValue
    int id;
    String name;
    String password;
    int id_book;
    @Temporal(TemporalType.DATE)
    private Date date;
 
    public Student() {
 
    }
 
    public Student(String name, String password) {
        this.name = name;
        this.password = password;
    }
 
    public int getId() {
        return id;
    }
 
    public void setId(int id) {
        this.id = id;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(String name) {
        this.name = name;
    }
 
    public String getPassword() {
        return password;
    }
 
    public void setPassword(String password) {
        this.password = password;
    }
 
    public int getId_book() {
        return id_book;
    }
 
    public void setId_book(int id_book) {
        this.id_book = id_book;
    }
 
    @Override
    public String toString() {
        return
                name + password;
    }
 
}
и собственно контроллер:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
package com.example27.demo27.Student;
 
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.jdbc.repository.query.Query;
import org.springframework.data.jpa.repository.Modifying;
import org.springframework.data.repository.query.Param;
import org.springframework.stereotype.Controller;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
 
import java.util.List;
import java.util.Map;
 
@Controller
public class StudentController {
 
    @Autowired
    public StudentRepo studentRepo;
 
    @GetMapping("/")
    public String student() {
        return "student";
    }
 
    @GetMapping("/main")
    public String main(Map<String, Object> model) {
        Iterable<Student> students = studentRepo.findAll();
        return "main";
    }
 
    @PostMapping("adduser")
    public String studentadd(@RequestParam String name, @RequestParam String password,
                             Map<String, Object> model) {
        Student student = new Student(name, password);
        studentRepo.save(student);
        return "redirect:/mainBook";
    }
 
    @PostMapping("finduser")
    public String find(@RequestParam int find, Map<String, Object> model) {
        Iterable<Student> student = studentRepo.findById(find);
        model.put("student", student);
        return "mainadmin";
    }
 
    @PostMapping("deluser")
    public String del(@RequestParam int del, Map<String, Object> model) {
        Iterable<Student> student = studentRepo.deleteById(del);
        return "mainadmin";
    }
 
    @PostMapping("findAllUser")
    public String findAll(Map<String, Object> model) {
        Iterable<Student> student = studentRepo.findAll();
        model.put("student", student);
        return "mainadmin";
    }
 
    @GetMapping("/autorizationuser")
    public String autorizationuser(@RequestParam(required = false) String name, @RequestParam(required = false) String password,
                                   Map<String, Object> model) {
        List<Student> student = studentRepo.findByNameAndPassword(name, password);
        for (int i = 0; i < student.size(); i++) {
           // System.out.println(student.get(i).toString());
            if (student.get(i).toString().equals(name + password)) {
                return "MainBook";
            }
        }
        return "/autorizationuser";
    }
 
    @Transactional   // 
    @PostMapping("take")  //ХОЧУ , ЧТО БЫ ХОТЬ ЧТО - ТО ЗАРАБОТАЛО, ПОЭТОМУ ПЕРЕДАЮ ТАКИЕ ПАРАМЕТРЫ
    public String updatebook( @RequestParam("nameBook") int id_book, @RequestParam("id_student") int  id_student, Map<String, Object> model){
 
        studentRepo.updateBook(4,2);
 
        return "mainBook";
    }
 
}
Собственно сама проблема: Не компилится, выкидывает exception :
Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.
2019-12-24 00:59:40.039 ERROR 256 --- [ main] o.s.boot.SpringApplication : Application run failed

org.springframework.beans.factory.Unsati sfiedDependencyException: Error creating bean with name 'studentController': Unsatisfied dependency expressed through field 'studentRepo'; nested exception is org.springframework.beans.factory.BeanCr eationException: Error creating bean with name 'studentRepo': Invocation of init method failed; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.List com.example27.demo27.Student.StudentRepo .updateBook(int,int)! No property updateBook found for type Student!

Очень нужна помощь.

P.S. Всё замечательно работало пока не начал писать запрос на обновление колонки в БД
0
Лучшие ответы (1)
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.12.2019, 01:12
Ответы с готовыми решениями:

Не удается выполнить запрос Update
Доброго времени суток! Написал программу по работе с Базой Данных. Запросы SELECT и INSERT выполняются успешно. Появилась...

Не получается выполнить запрос UPDATE
Помогите пожалуйста. Есть база данных, в ней таблица жанров книг и книги, необходимо выполнить запрос обновления данных в таблице книг в...

Не удаётся выполнить запрос
Пытаюсь добавить запись в бд комп пишет Column count doesn't match value count at row 1 о чем это он!! Вот запрос ...

8
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
24.12.2019, 01:35
Java
1
2
3
@Modifying
@Query("update com.example27.demo27.Student s set s.id_book = :book where s.id = :student")
void updateBook(@Param("student") int student, @Param("book") int book);
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 01:43  [ТС]
Спасибо за ответ, попробовал закопипастить , та же самая ошибка
0
 Аватар для sdasdaw
406 / 278 / 93
Регистрация: 14.03.2017
Сообщений: 777
24.12.2019, 01:52
Java
1
2
@Repository
/* ... */ extends  JpaRepository<Student, Integer>
0
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 10:16  [ТС]
И это тоже я делал. И тоже не помогло. Я уже и незнаю куда копать. Всё время выскакивает одна и та же ошибка. А именно даже не компилится
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.12.2019, 10:38
sda755, покажи импорты
1
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
24.12.2019, 10:44  [ТС]
к сожалению не имею возможности сейчас скинуть код. могу только ссылку на весь проект
https://github.com/Dmitry7555835/demo28 вот ссылка на гите
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
24.12.2019, 15:31
Лучший ответ Сообщение было отмечено sda755 как решение

Решение

sda755,
Как я и говорил выше. Неверный пакет аннотации Query. Ошибка выше говорит что спринг пытается построть запрос по конвенции имен и не находит поля updateBook. Это значит что аннотация квери игнорируется (кроме того что сам запрос там синтактически неверен).

должен быть org.springframework.data.jpa.repository. Query
1
0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5
25.12.2019, 23:14  [ТС]
Большое спасибо. Всё заработало
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.12.2019, 23:14
Помогаю со студенческими работами здесь

Не удаётся выполнить SQL запрос
Добрый вечер! Поправьте пожалуйста, чтобы работал запрос.. Делаю Convert так как исходные данные выводятся только в формате 04.11.2013. ...

Не удаётся выполнить MySQL запрос
Друзья, помогите! Хочу сделать запрос из таблицы некоторых данных из формы, которая ссылается на этот скрипт: &lt;html&gt; ...

Не удаётся подключиться к базе данных и выполнить запрос
Доброго времени суток всем участникам форума. Надо подключиться к базе данных и достать из неё данные. Использую вот этот код: ...

SQLite: не удается выполнить запрос - отсутствует таблица
Здравствуйте! Читаю Шлее, не работает пример из главы 41, вот код, взятый из книги: #include &lt;QtWidgets&gt; #include...

Как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE?
Ребята, как с помощью обычного контрола Data выполнить SQL запрос типа UPDATE или DELETE? Короче VB6 и база Access. Не хочу усложнять...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере нетипового документа выдачи шин для спецтехники с табличной частью, разработанного в конфигурации КА2. Данные берутся из. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru