Объединение двух транзакций спящего режима [дубликат]

Здесь есть много приемлемых ответов, но некоторые из сантехники могут быть немного непрозрачными для непосвященных. Вот еще более простой пример, который можно легко настроить:

$ cat ~/bin/git/git-update-all
#!/bin/bash
# Update all local branches, checking out each branch in succession.
# Eventually returns to the original branch. Use "-n" for dry-run.
git_update_all() {
  local run br
  br=$(git name-rev --name-only HEAD 2>/dev/null)
  [ "$1" = "-n" ] && shift && run=echo

  for x in $( git branch | cut -c3- ) ; do
     $run git checkout $x && $run git pull --ff-only || return 2
  done

  [ ${#br} -gt 0 ] && $run git checkout "$br"
}

git_update_all "$@"

Если вы добавите ~/bin/git в свой PATH (при условии, что файл ~/bin/git/git-update-all), вы можете просто запустить:

$ git update-all
3
задан fabian 24 October 2015 в 17:40
поделиться

1 ответ

Вам нужно вызвать методы DAO из другого метода с помощью @Transactional.

Затем транзакция будет создана за пределами методов DAO, и они будут использовать существующую транзакцию (из-за распространения по умолчанию ) вместо создания своих новых.

4
ответ дан Kayaman 22 August 2018 в 21:54
поделиться
  • 1
    благодаря!! вы можете объяснить свое сообщение простым кодом, пожалуйста? :) – user3449772 24 October 2015 в 17:40
  • 2
    Ух, конечно ... @Transactional void myMethod() { dao1.method(); dao2.method(); }. Модифицируйте в соответствии с вашими потребностями и ознакомьтесь с транзакциями. Они оба сложны и очень важны для понимания. – Kayaman 24 October 2015 в 17:43
  • 3
    Большое спасибо человеку! :) одно: методы dao1 и dao2 также должны быть транзакционными? – user3449772 24 October 2015 в 17:45
  • 4
    Это полностью зависит от того, как вы собираетесь их использовать. Вот почему я сказал read up on transactions. Они не простые вещи. – Kayaman 24 October 2015 в 17:46
  • 5
    Уфф, ладно! Я понимаю ваш вопрос! Спасибо! :) – user3449772 24 October 2015 в 17:49
Другие вопросы по тегам:

Похожие вопросы: