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