I did some badness today.
I wanted an integration test to check to see if my @Transactional method actually did rollback on an optimistic lock failure. It’s a pretty business critical method so I wanted to be sure that the whole @Transactional and @Version annotation voodoo actually works.
The approach I took was to inject, what I called a “slowRepository” into the object with the @Transactional method. The slowRepository is just a mockito mock of the object which “answers” (using “thenAnswer”) to the “findBy…” with some custom code.
The idea is that at some point during the @Transactional method the slowRepository is called and the “answer” code is invoked. In the test, the answer code follows along the lines of:
1. Grab the data it requires from the (not slow) repository (the repository the slowRepository is mocking)
2. Switch back the slowRepository for the not slow repository
3. Invoke the @Transactional method again on a separate thread
4. Sleep for a bit
5. Wake up and return the data from step 1
The @Transactional call on the separate thread completes and commits before slowRepository wakes up. When it does, slowRepository returns stale data and the @Transactional method then fails accordingly.
The problem I encountered was using the setters for my @Autowired dependencies on the bean with the @Transactional method. I needed to use the setters so that I could switch in and out the slowRepository, but couldn’t because Spring AOP proxies are implementations of an interface, not subclasses (by default – yes I realise you can get Spring to proxy the target class using CGLIB). I found this blog post which explains how to get at the target object behind a Spring proxy. I converted it to Scala:
…which is pretty ninja.
Здравствуйте Материнский капитал на покупку жилья аналоги в Казахстане 2026 года существуют. Государственные программы поддержки семей с детьми помогают улучшить условия. Используйте сертификаты для первоначального взноса или погашения ипотеки частично. Изучите все доступные меры социальной поддержки для вашей семьи внимательно. Полная информация по ссылке – https://na-tumbe.kz/ как поднять объявление в поиске весы напольные с анализом состава тела ароматизаторы в машину какие лучше весы напольные с анализом состава тела геолокация определение местоположения стрижка когтей собаке самостоятельно Всего наилучшего и хорошей информации
A variância do Fortune Mouse bateu diferente agora.
melhores apostas
Feel free to visit my web page website
Os comentários do youtube fixou o tópico de regras de banca. Finalmente.
apostas criquete gratis
Also visit my website; webpage
betting on a place in horse racing results southwell – Francisco, racing
Для тех, кто ищет информацию по теме “Футбол и жизнь: от спорта до ставок”, нашел много полезного.
Ссылка ниже:
https://out-football.com
como apostar nos escanteios
Also visit my web site; estratégia e método apostas vinculadas
limites casas de apostas
My blog … odd mínima para apostar, Rusty,
Важно не ждать когда состояние пациента станет критическим. Алкоголизма наркомании и других форм зависимости часто стесняются но промедление может привести к осложнениям депрессии агрессии нарушению работы органов тяжелой интоксикации и риску для жизни человека. Подробнее тут – вызов нарколога на дом республика татарстан
Вызов нарколога на дому удобен когда близкий человек не готов ехать в клинику стесняется обращаться за медицинской помощью или боится огласки. Доктор приезжает по месту проживания проводит диагностику подбирает индивидуально необходимые лекарства и начинает выведение токсинов. Изучить вопрос глубже – вывод из запоя в стационаре казань
Публикация о чит-кодах секс игрушки анал
Um regular do fórum jura por depósito instantâneo pra saque rápido nas sessões de Wild Wild Riches.
Вывод запоя нужен не только при тяжелых осложнениях. Даже если пациент говорит что «сам справится» запой может быстро привести к отравлении этанола обезвоживанию нарушению давления делирия галлюцинаций судорожных реакций инфаркта или инсульта. Чем дольше человек продолжает пить тем выше риск серьезные последствий для организма. Получить больше информации – вывод из запоя на дому цена в сочи
“duvar boyas? k?yafetten nas?l c?kar” konusu icin cok faydal? bir yaz? buldum. Suradan okuyabilirsiniz: https://fikirdronu.com/articles/kiyafetten-duvar-boyasi-cikarma-yontemleri/
An intriguing discussion is worth comment. There’s no doubt that that you
ought to write more on this topic, it may not be a taboo subject but typically folks don’t talk
about such topics. To the next! Kind regards!!
Врач нарколог проводит первичный осмотр пациента уточняет сколько дней длится запой какие напитки употреблялись есть ли боль рвотные позывы бессонница панические атаки судороги галлюцинации повышенная тревожность или признаки белой горячки. После этого врач определяет можно ли проводить вывод запоя на дому или лучше организовать лечение в стационаре. Ознакомиться с деталями – наркологический вывод из запоя казань
Вы получаете не просто капельницу а комплекс медицинской помощи: осмотр пациента подбор растворов применение седативных средств при необходимости витамины противорвотные обезболивающие препараты для нормализации давления поддержки печени и нервного состояния. Такой подход помогает не только прервать запой но и начать путь к лечению алкоголизма если пациент готов продолжить восстановление. Получить больше информации – вывод из запоя с выездом в казани
Fortune Mouse me carregou hoje.
Реабилитация наркоманов по методу 12 шагов может сочетаться с психотерапией групповой терапией консультацией нарколога работой психолога наблюдением врача медикаментозной терапией стационаром детоксикацией и помощью родственникам. Если человек находится в острой интоксикации переживает ломку запой похмельный синдром тревогу бессонницу психоз или выраженное физическое истощение сначала может потребоваться наркологическая помощь срочный вызов стационар снятие ломки капельница вывод из запоя или детоксикация. После стабилизации начинается реабилитация как отдельная программа направленная на долгосрочные изменения. Получить дополнительную информацию – reabilitaciya-programma-12-shagov