2017-09-19 20:39:48 +05:30
|
|
|
---
|
|
|
|
layout: pattern
|
|
|
|
title: Unit Of Work
|
|
|
|
folder: unit-of-work
|
|
|
|
permalink: /patterns/unit-of-work/
|
2017-09-24 12:56:06 +05:30
|
|
|
|
2017-09-19 20:39:48 +05:30
|
|
|
categories: Architectural
|
|
|
|
tags:
|
|
|
|
- Java
|
|
|
|
- KISS
|
|
|
|
- YAGNI
|
|
|
|
- Difficulty-Beginner
|
|
|
|
---
|
|
|
|
|
|
|
|
## Intent
|
2017-10-31 16:26:24 +05:30
|
|
|
When a business transaction is completed, all the these updates are sent as one
|
2017-09-19 20:39:48 +05:30
|
|
|
big unit of work to be persisted in a database in one go so as to minimize database trips.
|
|
|
|
|
|
|
|

|
|
|
|
|
|
|
|
## Applicability
|
|
|
|
Use the Unit Of Work pattern when
|
|
|
|
|
2017-09-26 23:25:36 +05:30
|
|
|
* To optimize the time taken for database transactions.
|
2017-09-25 21:23:12 +05:30
|
|
|
* To send changes to database as a unit of work which ensures atomicity of the transaction.
|
2017-09-27 00:04:06 +05:30
|
|
|
* To reduce number of database calls.
|
2017-09-19 20:39:48 +05:30
|
|
|
|
|
|
|
## Credits
|
|
|
|
|
|
|
|
* [Design Pattern - Unit Of Work Pattern](https://www.codeproject.com/Articles/581487/Unit-of-Work-Design-Pattern)
|
|
|
|
* [Unit Of Work](https://martinfowler.com/eaaCatalog/unitOfWork.html)
|