Работая над этим огромным проектом сбора данных, созданным с помощью GWT (mariaDB as db), моя основная цель — заменить некоторые компоненты пользовательского интерфейса, а вместе с ними и их функциональные возможности (в данном случае управление пользователями, где вы можете добавлять/редактировать/перемещать), если быть честным, прямо сейчас я создаю острова в этом проекте, где я отделяюсь от GWT и использую для пользовательского интерфейса фреймворк Flutter (этот фреймворк выбран, потому что позже мы хотим иметь мобильную совместимость и один единая архитектура). На данный момент связь между Flutter и сервером осуществляется посредством вызовов API. Я стараюсь использовать практически без изменений функции, которые использует GWT, я просто беру их и пытаюсь реализовать в своем коде. Проблема в том, что есть одна функция, которая сохраняет/редактирует пользователей (да, она делает и то, и другое), и по некоторым причинам, когда она запускается конечной точкой (@PostMapping, @Transactional) ведет себя странно, я имею в виду, что когда вы пытаетесь изменить организацию пользователя, у этого пользователя есть некоторая область интересов (внешний ключ, нетерпеливая выборка, объявленная на сайтах, переменная внутри класса User), и когда он перемещается в другую организацию, его сайты будут перемещены. с ним тоже (сайты имеют внешний ключ организации). Когда функция (saveAndmoveSites), созданная (с помощью @Transactional) для извлечения сайтов редактируемого пользователя и перемещения их в новую организацию, вызывается функцией saveUser (которая вызывается flutter), по каким-то причинам вообще ничего не находит, ни одного сайта. Но когда все это запрашивает GWT, все нормально, найдет и переместит все сайты пользователя. Перед функцией saveAndMoveSites есть этот сопоставитель, где он сопоставляет DTO, полученный из запроса, с пользователем (используя MappedFacade), а на сайтах (область интереса) поле пусто (GWT отправляет пустое поле, flutter отправляет пустое поле). Я вижу, вызывается ли этот картограф флаттером до того, как saveAndMoveSites заставит серверную часть очистить сайты пользователей, и поэтому не найдет ни одного сайта при вызове saveAndMoveSites, но если вызывается GWT, картограф очистит сайты пользователя, но затем каким-то образом найдет их. Я очень удивлен этим странным поведением, и я хочу знать, как работают сеансы GWT (RPC) и управление состоянием гибернации, и почему эта функция ведет себя по-другому во Flutter.
В начале функции сделал эту отладочную печать, чтобы точно увидеть полученный DTO, чтобы увидеть различия между тем, что я отправляю из Flutter, и тем, что отправляет GWT. Я могу сказать, что совпадения 1:1, ничего не отличается друг от друга.
Чтобы решить эту проблему, я создал логическую переменную, которая будет проверять, вызывается ли функция флаттером, и если да, то не будет вызывать картограф перед saveAndMoveSites, но будет вызывать после этой функции. И пока все работает так, как задумано.
Подробнее здесь: https://stackoverflow.com/questions/797 ... a-database
Как транзакции GWT RPC работают с JPA/Hibernate в базе данных? ⇐ JAVA
Программисты JAVA общаются здесь
-
Anonymous
1760622615
Anonymous
Работая над этим огромным проектом сбора данных, созданным с помощью GWT (mariaDB as db), моя основная цель — заменить некоторые компоненты пользовательского интерфейса, а вместе с ними и их функциональные возможности (в данном случае управление пользователями, где вы можете добавлять/редактировать/перемещать), если быть честным, прямо сейчас я создаю острова в этом проекте, где я отделяюсь от GWT и использую для пользовательского интерфейса фреймворк Flutter (этот фреймворк выбран, потому что позже мы хотим иметь мобильную совместимость и один единая архитектура). На данный момент связь между Flutter и сервером осуществляется посредством вызовов API. Я стараюсь использовать практически без изменений функции, которые использует GWT, я просто беру их и пытаюсь реализовать в своем коде. Проблема в том, что есть одна функция, которая сохраняет/редактирует пользователей (да, она делает и то, и другое), и по некоторым причинам, когда она запускается конечной точкой (@PostMapping, @Transactional) ведет себя странно, я имею в виду, что когда вы пытаетесь изменить организацию пользователя, у этого пользователя есть некоторая область интересов (внешний ключ, нетерпеливая выборка, объявленная на сайтах, переменная внутри класса User), и когда он перемещается в другую организацию, его сайты будут перемещены. с ним тоже (сайты имеют внешний ключ организации). Когда функция (saveAndmoveSites), созданная (с помощью @Transactional) для извлечения сайтов редактируемого пользователя и перемещения их в новую организацию, вызывается функцией saveUser (которая вызывается flutter), по каким-то причинам вообще ничего не находит, ни одного сайта. Но когда все это запрашивает GWT, все нормально, найдет и переместит все сайты пользователя. Перед функцией saveAndMoveSites есть этот сопоставитель, где он сопоставляет DTO, полученный из запроса, с пользователем (используя MappedFacade), а на сайтах (область интереса) поле пусто (GWT отправляет пустое поле, flutter отправляет пустое поле). Я вижу, вызывается ли этот картограф флаттером до того, как saveAndMoveSites заставит серверную часть очистить сайты пользователей, и поэтому не найдет ни одного сайта при вызове saveAndMoveSites, но если вызывается GWT, картограф очистит сайты пользователя, но затем каким-то образом найдет их. Я очень удивлен этим странным поведением, и я хочу знать, как работают сеансы GWT (RPC) и управление состоянием гибернации, и почему эта функция ведет себя по-другому во Flutter.
В начале функции сделал эту отладочную печать, чтобы точно увидеть полученный DTO, чтобы увидеть различия между тем, что я отправляю из Flutter, и тем, что отправляет GWT. Я могу сказать, что совпадения 1:1, ничего не отличается друг от друга.
Чтобы решить эту проблему, я создал логическую переменную, которая будет проверять, вызывается ли функция флаттером, и если да, то не будет вызывать картограф перед saveAndMoveSites, но будет вызывать после этой функции. И пока все работает так, как задумано.
Подробнее здесь: [url]https://stackoverflow.com/questions/79792164/how-do-gwt-rpc-transactions-work-with-jpa-hibernate-on-a-database[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия