0 / 0 / 0
Регистрация: 24.12.2019
Сообщений: 5

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

24.12.2019, 01:12. Показов 1816. Ответов 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 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2. Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2. Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом. В. . .
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2. Задача: отобразить спецтехнику, которая на данный момент находится в ремонте. Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru