やなどの「基本操作」ストアド プロシージャがBookAVehicle
ありUnBookAVehicle
ます。どちらも取引中です。
しかし、今はもう少し複雑なストアド プロシージャが必要です: RescheduleBooking
. また、トランザクショナルである必要があります。
ここで、内部からResceduleBooking
を呼び出したいのですがBookAVehicle
、この場合、内部トランザクションをロールバックさせたくありません。
しかし、BookAVehicle
直接呼び出すときは、ロールバックを維持したいと思います。
これをエレガントに行う方法について何か提案はありますか?
パラメータとしてストアドプロシージャの名前を取り、トランザクションとパラメータストアドプロシージャへの呼び出しのみを含む「ラッパー」ストアドプロシージャを持つという行に沿って何かを考えていました。
したがって、「直接」と呼ぶときは、次のように呼び出します。
TransactionWrapper(BookAVehicleWithoutTrans)
そして、別のトランザクションから呼び出すと、次のように呼び出します。
RescheduleBooking -> BookAVehicleWithoutTrans