Inheritance created before version v8.13.0
Inheritance is not new in Hackolade Studio. Before version v8.13.0, inheritance was modeled as a superclass: a named object holding a parent entity and its child entities, declared in the Relationships tab of the Properties Pane of the model.

Properties also showed on the entities themselves, through the Parent entity and Child entity properties of their Details tab:

Version v8.13.0 did not replace that object, it extended it. A superclass has become a supertype group, with a tab of its own, and with more properties than a superclass had previously: a description, Completeness, Exclusivity, and a materialization strategy. A supertype can also take part in several groups now, one per axis of specialization. The vocabulary evolved as well: the parent entity is now the supertype, and the child entities are now the subtypes.
Your existing models get automatically adapted when opening them with Hackolade Studio v8.13.0 and after. Everything you had declared in a superclass is now a supertype group.
When you open the model
Let's take a data model used earlier in this series of articles, but built with an earlier version: Party is the parent entity, while entities Organization and Person are its child entities, in a superclass named Legal nature.
Open it in version v8.13.0 and select the group in the Supertype groups tab:

What you had declared previously is still there: the name Legal nature, Party as the Supertype entity, the entities Organization and Person as its subtypes. Two properties are empty however, since a superclass had no equivalent for them: Completeness and Exclusivity. The dashed parts of the group symbol on the ERD alert you to the fact that they should be set.
The Materialization section is new as well, and its Strategy property is set to the value Legacy.

Legacy defines the derive operation behavior
The Legacy materialization strategy tells the derivation to treat the supertype group the way earlier versions did. That is what protects the PostgreSQL model of our example: refresh it, or derive a new physical model, and the shape you get is the one you had previously. Open your Polyglot model in version v8.13.0 does not change the downstream behavior.
The Legacy materialization strategy is a starting point, not a real strategy. Your groups carry it because they were built before strategies existed, and it appears greyed out in the list of every group, because it shows where a group comes from rather than a behavior that you specified. While a group remains set to Legacy, it keeps the limits of the old implementation:
- Completeness and Exclusivity remain read-only
- the Strategy set for an individual subtype is ignored, so the group cannot mix strategies
- on a Polyglot target, the group is copied as it is, and whatever you change in the derived model is overwritten on the next update
Upgrading the inheritance to supertype group with a strategy
Select the group, open Materialization, and set the Strategy to a value that shows as enabled:

Changing the strategy might change the shape of the models derived from your Polyglot model, so give yourself a way back before you start:
- keep a copy of your Polyglot model and of the physical models derived from it
- or, if you work with Git as we recommend, work on a separate branch and review the changes before you commit them
You can then set a strategy, derive, compare with the physical model you had, try another one, and keep the shape that fits your needs. In a model containing several groups, take them one at a time.
Important: once a group is not longer set to Legacy, the value Legacy can no longer be selected.
Hackolade Studio does not decide for you what strategy is the best fit for your needs. It depends on how your applications read the data, and the same Polyglot model may legitimately deserve different shapes in different physical models.
Opening a model with supertype groups in a version earlier than v8.13.0
A Polyglot model with supertype groups (saved with version v8.13.0) an be opened without errors in an earlier version. The supertype groups are simply not displayed: no Supertype groups tab, and a simplified group symbol on the ERD (no representation for completeness or exclusivity.)