DeprecatedThis functionality is deprecated since version 4.4. The functionality is still supported and maintained, but it will no longer be extended. The plan is to remove this functionality sooner or later. Users of this functionality are strongly encouraged to stop using this functionality and migrate to a newer equivalent. Please use the replacement functionality instead.
MidPoint stores its data in a relational database. Historically, midPoint supported several database engines that could be used to store the data. A "generic" implementation of data storage mechanisms (a.k.a. "repository") was developed for that purpose, using abstraction libraries to support several database engines with a single code-base.
Generic repository implementation has one advantage: you can choose one of several database engines.
However, it has many disadvantages.
The implementation has to be generic, fitting all the supported database engines at once.
Therefore only "standard" mechanisms common to all supported databases can be used.
Only "standard" SQL commands can be used, the implementation cannot take advantage of database-specific improvements (such as
SELECT FOR UPDATE command).
Only "standard" database schema can be used, the implementation cannot take advantage from database-specific features (such as hierarchical database tables, partitioning, etc.)
Therefore, the generic repository implementation is limited.
It can still do all the things necessary for basic midPoint operation.
However, it does not do them very well.
Replaced by native PostgreSQL repositoryGeneric repository implementation is now deprecated. It was replaced by a Native PostgreSQL repository implementation in midPoint 4.4. The native repository implementation was developed as a part of midScale project, aiming at improving midPoint scalability. Generic repository implementation will be still supported for some time. However, its use is strongly discouraged, especially for new midPoint deployments. Existing midPoint deployments that still use the generic repository are strongly recommended to migrate to Native PostgreSQL repository as soon as possible.
Please see following pages for details: