Brief description
Blocking the domain object and the mapping between the domain objects and the relational data in a single component. Object / Relationship Mapping simultaneously separating application code and domain objects from the underlying data model and data access details.
applicability
It is necessary to hide the complexity of physical data modes and data access to applications logic and domain objects.
You need to block the domain object mapping in a single component so that you may not modify the application code or domain object definition when the data model changes.
Need to map multiple data models from domain objects without modifying the versatility of application code or domain object definitions.
trade off
Rely on additional commercial products
advantage
Clear application code
Map to replaceable data model
Disadvantage
Limited the application of application on data access