Форум программистов, компьютерный форум, киберфорум
Java EE (J2EE)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481

Возможно ли сохранять данные разных репозиториев используя CrudRepository?

31.03.2017, 10:42. Показов 1115. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Вопрос находится в такой плоскости.

Клиент делает покупку на сайте. На сайте не одна БД, из которой клиент может купить товар. Покупка попадает в "определитель" из какой БД следует уменьшить кол-во товара, case или if(else if), но вся суть кода сводится к тому, что бы взять кол-во товара из БД и отнять от него заказанное кол-во и вот это пытаюсь реализовать одним кодом:
Java
1
2
3
4
5
6
7
8
9
10
11
12
       if(split[1].contains(clothFabric)) {
           List<ClothFabricModel> clothFabricModels = clothFabricRepository.findById(id);
            ClothFabricModel model = clothFabricModels.get(0);
           Double quantityInDB = model.getQuantity(); 
           checkInfo(clothFabricRepository, modelToSend, quantityInDB, quantityFromUI);
 
       } else if (split[1].contains(curtainFabric)){
           List<CurtainModel> listModel = curtainRepository.findById(id);
           CurtainModel model = listModel.get(0);
           Double quantityInDB = model.getQuantity();
           checkInfo(curtainRepository, model, quantityInDB, quantityFromUI);
           }
вот так пробую реализовать одинаковую часть:
Java
1
2
3
4
5
6
7
8
9
10
 public void checkInfo(CrudRepository repositories, AllFabricModel model, Double quantityInDB, Double quantityFromUI){
        if (quantityInDB <= 0) {
            System.out.println("In DB ZERO");
        } else {
 
            Double result = quantityInDB - quantityFromUI;
            model.setQuantity(result);
            repositories.save(model);
        }
    }
Ошибки нет, но вот только никакие изменения не сохраняются в БД.
Все репозитории наследуют CrudRepository
Java
1
2
@Repository
public interface CurtainRepository extends CrudRepository<CurtainModel, Long>{
Тут ответа не нашел
https://docs.spring.io/spring-data/data-commons/
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
31.03.2017, 10:42
Ответы с готовыми решениями:

Возможно ли в консольном приложении сохранять данные, заполненные пользователем?
Возник вопрос, есть ли возможность в консольном приложении сохранять данные заполненные пользователем. Например, происходит ввод Сервера...

В каких файлах у разных браузеров хранится галочка сохранять/не сохранять пароли?
Нужен способ отключить сохранение паролей во всех браузерах одновременно. Все известные обновляющиеся Chrome / Opera / Firefox / IE /...

Как вычислять в поле таблицы используя данные из разных таблиц?
Народ, всем привет! Вопрос: Есть Таблица 1 в ней есть поле с датой . Есть Таблица 2 с числовым полем. Как сделать в Таблице 3 поле в...

6
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
31.03.2017, 12:55
Ну ты и каши наварил. Интересно, зачем тебе куча разных баз даных? Ведь к каждой нужны свои настройки JPA. А сомтря на твой код я сомневаюсь что они разные. Может ты имеешь ввиду таблицы????
Плюс я не вижу что твои методы выполняются в рамках транзаакции.
0
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
31.03.2017, 13:00  [ТС]
100% верное замечание таблицы, не БД извиняюсь за неверную терминологию.
На ск-ко я знаю @Transaction ставится перед модификатором, а не внутри, поэтому Вы и не видите.
0
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
31.03.2017, 16:28
Если в методе public void checkInfo(...) AllFabricModel model, это класс реализующий определённою таблицу то model.setQuantity(result) должно незамедлитильно послать update в БД. Но вы говорите что этого ен происходит, как по мне:
1. public void checkInfo не в рамках транзаакции.
2. Почему в одном случае вызываете метод с modelToSend а в другом model?? modelToSend я не вижу что такое это.
Java
1
2
checkInfo(clothFabricRepository, modelToSend, quantityInDB, quantityFromUI);
checkInfo(curtainRepository, model, quantityInDB, quantityFromUI);
3. Метод где вы ищете нужную таблицу тоже должен быть обрамлён транзаакцией.

И всё же самый верный способ провереть это отдебажить метод checkInfo, посмотрите что не в него приходит
1
3 / 3 / 14
Регистрация: 26.01.2016
Сообщений: 481
31.03.2017, 17:39  [ТС]
@Transaction добавил и работает, но могли бы Вы подсказать почему его и тут нужно было поставить, если у меня в главном модификаторе присутствует?
0
 Аватар для Borsche
183 / 110 / 44
Регистрация: 03.07.2016
Сообщений: 496
31.03.2017, 17:55
Не понимаю что ты имеешь ввиду под главным модификатором. А про транзакции тут написано
http://akorsa.ru/2016/08/kak-n... al-spring/
0
528 / 263 / 70
Регистрация: 11.12.2016
Сообщений: 1,223
16.07.2018, 00:26
Borsche,
Я уже находил эту стятью, а еще кучу других примеров, а так как они разные то я никак не могу подвести общий знаменатель (( в частности, надо использовать EntityManager (использовать persist, merge внутри transactional) если я хочу с помощью hibernate в @transactional иметь доступ к БД?
Здесь тоже написано "две концепции, но свои области действия". Они паралельные, заменяемые или нет?
Также написано что при новой трансакции создается новый EntityManager, тогда при каждом запросе я могу просто создавать новую трансакцию и работать с уже привычными save(), load().. типа так
Java
1
2
3
session.beginTransaction();
session.save(student);
session.getTransaction().commit();
В чем подвох? нахожу примеры как с EntityManager так и без?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
16.07.2018, 00:26
Помогаю со студенческими работами здесь

Возможно ли используя Criteria выбрать данные из связанных таблиц одним запросом?
Здравстуйте! Проект использует Symfony 3, Doctrine 2. Есть таблица объявлений и таблица пользователей, которые эти объявления...

Необходимо вводить данные в форму и сохранять данные в таблице базы данных
Подскажите пожалуйста новичку в деле программирования!Создаю базу данных в 2000 Access.Сохраняю базу в ту же папку что и проект на VB.Мне...

Возможно ли в типизированный файл сохранять другие файлы?
Подскажите, возможно ли в типизированный файл сохранять другие файлы? Я пробовал в record добавить переменную Img: TImage: type ...

Возможно ли сохранять атрибуты файла при передачи через интернет?
Здравствуйте. Подскажите пожалуйста, возможно ли как-то обеспечить сохранение атрибутов файла (в особенности только для чтения) при...

VS 2010 Express, как сохранять код разных версий моей программы
Есть проект в VS 2010 Express. Я хочу внести изменения в код моей программы, но при этом сохранить предыдущий код (сборку). Как это сделать?


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru