Size: a a a

Spring Framework and more

2017 September 05

EK

Evheniy Kulynych 🦀 in Spring Framework and more
значит ты его не доготовил, попробуй роллбек прописать и отдельную транзакцию на эту всю кухню
источник

EK

Evheniy Kulynych 🦀 in Spring Framework and more
он по факту не откатывает, а просто удаляет то что записано отдельным запросом
источник

ON

Oleg Nyrkov in Spring Framework and more
Evheniy Kulynych 🦀
он по факту не откатывает, а просто удаляет то что записано отдельным запросом
Очень интересная тема, гибернат умееет откатывать в не транзакционной бд, можете ссылочку на источник
источник

EK

Evheniy Kulynych 🦀 in Spring Framework and more
:facepalm:
источник

ON

Oleg Nyrkov in Spring Framework and more
Нельзя вот так просто вязть и синхронизировать два источника данных транзакции, для jdbc есть драйвер XA который уменьшает вероятность не согласованности но он медленный
источник

AM

Alexander Mamaev in Spring Framework and more
Oleg Nyrkov
Нельзя вот так просто вязть и синхронизировать два источника данных транзакции, для jdbc есть драйвер XA который уменьшает вероятность не согласованности но он медленный
ну видимо единственный более менее рабочий вариант - это в случае с ошибками монго, ее самостоятельно предварительно проверять, и далее уверенно заливать в неее данные, а в случае ошибок в мускл, делать saveAndFlush внутри общей транзакции и соответственно откатывать по пришедшей ошибке раньше, чем данные улетят в монго
источник

ON

Oleg Nyrkov in Spring Framework and more
ну велосипед придуман до нас https://docs.mongodb.com/manual/tutorial/perform-two-phase-commits/
источник

AM

Alexander Mamaev in Spring Framework and more
это видел.. пока хочется без этого...
источник

ON

Oleg Nyrkov in Spring Framework and more
ну если на оффсайте делают чере такой ге... думаешь есть вариант проще?
источник

ЕС

Евгений Серебров in Spring Framework and more
Большое спасибо за документацию по двухфазной фиксации транзакции в MongoDB. Может пригодиться.
источник
2017 September 06

O

Oleg in Spring Framework and more
Добрый день
Появился такой вопрос по WebSocket:
У меня есть сущности товара и категории. Товар содержит поле Категория. Работает через Spring Data/JPA
Когда я отправляю JSON вида
{category: "1", description: "desc", selfCost: "3", price: "5"}

То вылетает исключение:
org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Can not construct instance of com.github.tumerbaatar.demo.common.Category: no String-argument constructor/factory method to deserialize from String value ('1')

Код контроллера:

@Controller
public class GoodSocketController {

   private GoodService goodService;

   public GoodSocketController(GoodService goodService) {
       this.goodService = goodService;
   }

   @MessageMapping("/good")
   @SendTo("/topic/good")
   public Good good(@ModelAttribute Good good) {
       return goodService.save(good);
   }
}

Нужно ли упростить моё Message и парсить товар вручную?
Или есть какая-то best practice?
источник

O

Oleg in Spring Framework and more
Хочу добавить товар через WebSocket
источник

PP

Pavel Pogodaev in Spring Framework and more
Oleg
Хочу добавить товар через WebSocket
источник

PP

Pavel Pogodaev in Spring Framework and more
источник

O

Oleg in Spring Framework and more
Прикол в том, что то же самое работает с обычными контроллерами. В "category" приходит id категории
источник

AM

Alexander Mamaev in Spring Framework and more
Oleg
Добрый день
Появился такой вопрос по WebSocket:
У меня есть сущности товара и категории. Товар содержит поле Категория. Работает через Spring Data/JPA
Когда я отправляю JSON вида
{category: "1", description: "desc", selfCost: "3", price: "5"}

То вылетает исключение:
org.springframework.messaging.converter.MessageConversionException: Could not read JSON: Can not construct instance of com.github.tumerbaatar.demo.common.Category: no String-argument constructor/factory method to deserialize from String value ('1')

Код контроллера:

@Controller
public class GoodSocketController {

   private GoodService goodService;

   public GoodSocketController(GoodService goodService) {
       this.goodService = goodService;
   }

   @MessageMapping("/good")
   @SendTo("/topic/good")
   public Good good(@ModelAttribute Good good) {
       return goodService.save(good);
   }
}

Нужно ли упростить моё Message и парсить товар вручную?
Или есть какая-то best practice?
Good имплементит Serializable?
источник

O

Oleg in Spring Framework and more
Склоняюсь к тому, что надо написать свой кастомный MessageConverter, т. к. мы имеем дело с объектом Message при работе через WebSocket
источник

O

Oleg in Spring Framework and more
Клиент посылает Message
источник

O

Oleg in Spring Framework and more
Alexander Mamaev
Good имплементит Serializable?
Однако, нет, не помогло
источник

AM

Alexander Mamaev in Spring Framework and more
странно как-то.. а если принять не Good, а Map<String, String>?
источник