| /** | |
| * Example for persistence with the "inheritance per class" strategy | |
| * | |
| * The "Inheritance per class" strategy causes subclasses to share the database tables | |
| * of their parent classes. In order to be able to tell the types of the entries apart, a | |
| * discriminator has to be used. | |
| * | |
| * Thus, a single table is created that has the columns of all entities that share it (causing | |
| * a tradeoff between database size and access speed). | |
| * | |
| * "inheritance per class" needs to be declared in the topmost entity that should share the | |
| * common table. The setting is then inherited by children. | |
| * | |
| * The example below shows the declaration of custom values; inheritance per class | |
| * declarations have been added to sub-entities in order to override default values. This would | |
| * not have been necessary. | |
| * | |
| */ | |
| package org.eclipse.osbp.entitydsl.samples.sample06 { | |
| entity Vehicle { | |
| inheritance per class { | |
| discriminatorColumn TYPE_DISCR_COLUMN; | |
| discriminatorType STRING; | |
| discriminatorValue VEH; | |
| } | |
| uuid String id ; | |
| var String name; | |
| } | |
| entity Bike extends Vehicle { | |
| inheritance per class { | |
| discriminatorValue BIKE; | |
| } | |
| var String[*] bikedescription; | |
| var int price; | |
| } | |
| entity Boat extends Vehicle { | |
| inheritance per class { | |
| discriminatorValue BOAT; | |
| } | |
| var String[*] boatdescription; | |
| var int price; | |
| } | |
| } |