...
- replace all ElementCollections with Converters:
- A lot of small Jsons
- Using longtext, we are be able to maintain compatibility with MariaDB
- Small Json instead of Java binary code
- compatible with H2, MariaDB and PostreSql
- it impacts only onap/policy/models, persistence classes used into ElementCollections have to change to a Medium Java code impact: several persistence classes could be removed and replace with Document oriented classes
- 50% of tables (with postfix as _ATTRIBUTES, _PROPERTIES, _METADATA, _OCCURRENCES, _CONSTRAINTS, _TARGETS, _TRIGGERS and _INPUTS) will be removed
- Unit tests need to change at model level only onap/policy/models
- Unique Json String:
- One big Json for each model (e.g. saving the whole ToscaServiceTemplace as Json)
- Using jsonb, only PostgreSQL will be supported
- compatible only with PostreSql
- it impacts onap/policy/models and all applications related (runtime-acm, api and pap), persistence classes have to change to a Medium Java code impact: all persistence classes could be removed and replace with Document oriented classes
- 90% of tables will be removed
- Unit tests need PostgreSQLContainer (is not compatible with H2)
- MongoDB/Cassandra
- Document oriented approach full supported by SpringBoot (not needs Converters)
- Huge Java code impact: All repositories and all it impacts onap/policy/models and all applications related (runtime-acm, api and pap), and all repositories and persistence classes have to change to a Document oriented classes
- No support for MariaDB and PostgreSQL anymorecompatible only with MongoDB/Cassandra (MongoDB and Cassandra are not compatible to each other)
- Unit tests need an Embedded Cassandra Server (example for cassandra: EmbeddedCassandraServerHelper or CassandraContainer)
...