Форум программистов, компьютерный форум, киберфорум
Java: Spring, Spring Boot
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/8: Рейтинг темы: голосов - 8, средняя оценка - 4.75
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243

Spring запрос к базе

17.06.2021, 12:41. Показов 1704. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
День добрый коллеги, начал переводить jsp проект в спринг и столкнулся с проблемой.Необходимо зделать сложный запрос к базе и вывести результат во вьюшке.

Модель таблицы "MacroDaten" к которой создаётся запрос:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
@Entity
@Table(name="macro_daten")
@NamedQuery(name="MacroDaten.findAll", query="SELECT m FROM MacroDaten m")
public class MacroDaten implements Serializable {
    private static final long serialVersionUID = 1L;
 
    @Id
    @Column(name="macro_daten_id")
    private int macroDatenId;
 
    private double aufw;
 
    private int bloc;
 
    private int boc;
 
    private double fm;
 
    private double lesb;
 
    private int loc;....
Ниже репозиторий где написаны запросы которые отсылаются к базе(запросы возвращают 3 значения и они рабочие):
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
public interface MacroDatenRepository extends CrudRepository<MacroDaten, Long>{
 
    @Query("SELECT SUM(CASE WHEN fm>0.85 THEN 1 ELSE 0 END) AS hoheKomplex,"+
            "SUM(CASE WHEN fm BETWEEN 0.35 AND 0.85 THEN 1 ELSE 0 END) AS mittlereKomplex,"+
            "SUM(CASE WHEN fm<0.35 THEN 1 ELSE 0 END) AS geringeKomplex FROM MacroDaten")
    public HashMap <String,Double> getFm();
    
     @Query("SELECT SUM(CASE WHEN lesb>0.85 THEN 1 ELSE 0 END) AS hoheLesb," + 
             "SUM(CASE WHEN lesb BETWEEN 0.35 AND 0.85 THEN 1 ELSE 0 END) AS mittlereLesb," + 
             "SUM(CASE WHEN lesb<0.35 THEN 1 ELSE 0 END) AS geringeLesb FROM MacroDaten")
     public HashMap <String,Double> <String> getLesb();
     
}
Далее контроллер который пихает результат во вьюшку:
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
@Controller
public class DashController {
    @Autowired
    private MacroDatenRepository mcRepository;
    
    @PostMapping("/dash")
    public String getFm(Model model) {
        model.addAttribute("fm",mcRepository.getFm());
        model.addAttribute("lesb",mcRepository.getLesb());
        return "../blocks/Dashboard";
        
    }
}
И напоследок сама вьюха в которой пытаюсь тимлифом показать результат но непойму как это зделать:
HTML5
1
2
<table th:objekt="${fm}">
<tr><td  th:each="el:${fm}" th:value="${el.hoheKomplex}" th:text="${el.hoheKomplex}"></td></tr>
2 вопроса которые напрягают:
а)Правильно ли я выбрал хэш мап дла результата запроса?
б)Как с тимлифом показать эти результаты.
При работе программы показывается пустая страница и нет никаких сообщений об ошибках.
Заранее благодарю за помощь.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.06.2021, 12:41
Ответы с готовыми решениями:

Spring не могу подключиться к базе
Всем привет! Кто - то может подсказать, почему не могу подключиться, и выдает след ошибки? Я только начинаю с разбираться с spring ...

Java Spring метод с аннотацией @Transactional сильно тормозит запросы к базе
Java Spring метод с аннотацией @Transactional сильно тормозит запросы к базе Когда я запускаю метод БЕЗ @Transactional, то он...

В Spring-Security проходит ГЕТ-запрос, но не проходит ПОСТ-запрос
Здравствуйте! Тестирую с помощью http-клиента Intellije IDEA RestController. Для обхода авторизации добавил путь в исключения...

10
Модератор
Эксперт Java
 Аватар для alecss131
2855 / 1362 / 406
Регистрация: 11.08.2017
Сообщений: 4,343
Записей в блоге: 2
17.06.2021, 12:48
Выводить вот так:
HTML5
1
2
<table>
<tr th:each="el:${fm}"><td th:text="${el.key} ${el.value}"></td></tr>
блок внутри тэга с th:each выполняется для каждого объекта, а у вас внутри td пусто
1
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
17.06.2021, 13:36  [ТС]
Цитата Сообщение от alecss131 Посмотреть сообщение
Выводить вот так
а хэш мап я правильно выбрал?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
21.06.2021, 13:16  [ТС]
Непонятно чё неправильно,поменял репозиторий:
Java
1
2
3
4
5
6
public interface MacroDatenRepository extends CrudRepository<MacroDaten, Long>{
 
    @Query("SELECT SUM(CASE WHEN fm>0.85 THEN 1 ELSE 0 END) AS hoheKomplex,"+
            "SUM(CASE WHEN fm BETWEEN 0.35 AND 0.85 THEN 1 ELSE 0 END) AS mittlereKomplex,"+
            "SUM(CASE WHEN fm<0.35 THEN 1 ELSE 0 END) AS geringeKomplex FROM MacroDaten")
    public List <Integer> getFm();
и вьюха
HTML5
1
2
<table >
<tr th:each="el:${fm}"><td th:text="${el}"></td></tr>
выводит только 0

фотка с результатом в базе..Вопрос как вывести все 3 значения.Если убираю в запросе первую сумму то результат выводит только 3.
Миниатюры
Spring запрос к базе  
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
21.06.2021, 13:33  [ТС]
Цитата Сообщение от DimaxDe Посмотреть сообщение
выводит только 3.
не третий результат а число 3,другими словами выводится первое число и все.Как показать все три числа?
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
23.06.2021, 13:42  [ТС]
Java
1
2
3
4
5
6
7
8
9
10
11
12
@Repository
public interface MacroDatenRepository extends CrudRepository<MacroDaten, Long>{
    
    interface MacroDatenResult {
        Integer getHoheKomplex();
        Integer getMittlereKomplex();
        Integer getGeringeKomplex();
    }
    @Query("SELECT SUM(CASE WHEN fm>0.85 THEN 1 ELSE 0 END) AS hoheKomplex,"+
            "SUM(CASE WHEN fm BETWEEN 0.35 AND 0.85 THEN 1 ELSE 0 END) AS mittlereKomplex,"+
            "SUM(CASE WHEN fm<0.35 THEN 1 ELSE 0 END) AS geringeKomplex FROM MacroDaten")
    public MacroDatenResult getFm();
HTML5
1
2
<table >
<tr th:each="el:${fm}"><td th:text="${el.getHoheKomplex}"></td><td th:text="${el.getMittlereKomplex}"></td><td th:text="${el.getGeringeKomplex}"></td></tr>
работает.
0
Заблокирован
06.08.2021, 20:29
Извиняюсь, а разве для нативных запросов, которые не JPQL, не нужно указывать параметр nativeQuery = true?
0
Эксперт Java
 Аватар для KEKCoGEN
2399 / 2224 / 565
Регистрация: 28.12.2010
Сообщений: 8,672
07.08.2021, 12:19
village_coder, нужно, но тут нет нативных запросов
0
Заблокирован
07.08.2021, 20:14
Цитата Сообщение от KEKCoGEN Посмотреть сообщение
village_coder, нужно, но тут нет нативных запросов
Показались очень нативными.
0
541 / 352 / 194
Регистрация: 07.11.2018
Сообщений: 1,243
09.08.2021, 10:02  [ТС]
Цитата Сообщение от village_coder Посмотреть сообщение
Показались очень нативными
тут запросы идут не напрямую к базе а через модели.
Самый первый листинг кода проанализируйте.
1
Заблокирован
09.08.2021, 14:23
Цитата Сообщение от DimaxDe Посмотреть сообщение
Самый первый листинг кода проанализируйте.
Да, понял уже.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
09.08.2021, 14:23
Помогаю со студенческими работами здесь

Spring MVC - get запрос - вывод с БД
Добрый день. Помогите пожалуйста разобраться с обработкой запросов в spring mvc. Требуется вытянуть из базы данные по дате. В RateDAO...

Не работает POST-запрос в Spring REST
Доброго времени суток. Я пишу простое веб-приложение и столкнулся со странной для меня ошибкой: при использовании POST-метода я получаю...

Spring. Repository. @Query. Привильно написать запрос
Подчеркивает в @Query Click. В чем может быть ошибка? Как создавать сложные запросы ? ClickRepository import...

Spring: JSP + AJAX запрос, как правильно выполнить
Доброго времени суток. Подскажите пожалуйста, такой вопрос. Есть .jsp файл, на который мне надо подцепить результаты метода random...

Запрос в репозитории Spring Boot
Здравствуйте! В веб-приложении на Spring есть запрос на сортировку по определённым полям, но заранее эти поля не известны и я хочу в этот...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru