Здесь есть много приемлемых ответов, но некоторые из сантехники могут быть немного непрозрачными для непосвященных. Вот еще более простой пример, который можно легко настроить:
$ 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
Вам нужно вызвать методы DAO из другого метода с помощью @Transactional
.
Затем транзакция будет создана за пределами методов DAO, и они будут использовать существующую транзакцию (из-за распространения по умолчанию ) вместо создания своих новых.
@Transactional void myMethod() { dao1.method(); dao2.method(); }
. Модифицируйте в соответствии с вашими потребностями и ознакомьтесь с транзакциями. Они оба сложны и очень важны для понимания. – Kayaman 24 October 2015 в 17:43read up on transactions
. Они не простые вещи. – Kayaman 24 October 2015 в 17:46