diff --git a/Sda2/Ref/Fig/mapInherit.svg b/Sda2/Ref/Fig/mapInherit.svg index 144cc4ed99b0f60b89ac1027510625161d8c31d8..c89cab06fd0962331c84d8bc1a732f4ee57ec5d5 100644 --- a/Sda2/Ref/Fig/mapInherit.svg +++ b/Sda2/Ref/Fig/mapInherit.svg @@ -26,9 +26,9 @@ inkscape:pageshadow="2" inkscape:zoom="1.3828889" inkscape:cx="526.18109" - inkscape:cy="372.04724" + inkscape:cy="400.9722" inkscape:document-units="px" - inkscape:current-layer="g4923" + inkscape:current-layer="g4358" showgrid="true" inkscape:window-width="1920" inkscape:window-height="1176" @@ -2720,7 +2720,7 @@ sodipodi:role="line" id="tspan9040" x="603.17401" - y="203.26595"></tspan></text> + y="203.26595" /></text> </g> <g style="display:none" @@ -7328,6 +7328,142 @@ id="tspan5459-77-8" sodipodi:role="line">•No discriminator strategy required</tspan></text> </g> + <g + style="display:none" + inkscape:label="Mixing inheritance strategies" + id="g4358" + inkscape:groupmode="layer"> + <flowRoot + style="font-size:22px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Monospace;-inkscape-font-specification:Monospace" + id="flowRoot4360" + xml:space="preserve"><flowRegion + id="flowRegion4362"><rect + y="465.69177" + x="5.0618672" + height="63.634903" + width="779.52753" + id="rect4364" /></flowRegion><flowPara + id="flowPara4366" /></flowRoot> <text + sodipodi:linespacing="125%" + id="text4368" + y="454.09448" + x="510" + style="font-size:18px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#008000;fill-opacity:1;fill-rule:nonzero;stroke:#008000;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Monospace;-inkscape-font-specification:Monospace" + xml:space="preserve"><tspan + y="454.09448" + x="510" + id="tspan4370" + sodipodi:role="line" /></text> + <text + xml:space="preserve" + style="font-size:40px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;display:inline;font-family:Sans;-inkscape-font-specification:Sans" + x="10" + y="44.094482" + id="text4372" + sodipodi:linespacing="125%"><tspan + id="tspan4374" + sodipodi:role="line" + x="10" + y="44.094482">Mixing inheritance strategies</tspan></text> + <flowRoot + style="font-size:28px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;line-height:125%;letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;font-family:Monospace;-inkscape-font-specification:Monospace" + id="flowRoot4376" + xml:space="preserve"><flowRegion + id="flowRegion4378"><rect + y="613.85968" + x="143.40465" + height="141.20967" + width="388.50952" + id="rect4380" /></flowRegion><flowPara + id="flowPara4382" /></flowRoot> <flowRoot + style="font-size:36px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Monospace;-inkscape-font-specification:Monospace" + id="flowRoot4410" + xml:space="preserve"><flowRegion + id="flowRegion4412"><rect + y="342.76071" + x="26.755585" + height="325.40576" + width="930.66046" + id="rect4414" /></flowRegion><flowPara + id="flowPara4416" /></flowRoot> <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Monospace;-inkscape-font-specification:Monospace" + x="120.76169" + y="163.42599" + id="text4422" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4424" + x="120.76169" + y="163.42599">@Entity</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="193.42599" + id="tspan4426">@Inheritance(<tspan + style="fill:#ff0000" + id="tspan4456">strategy=InheritanceType.JOINED</tspan>)</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="223.42599" + id="tspan4428">@DiscriminatorColumn(name="")</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="253.42599" + id="tspan4430">public abstract class BillingDetail {</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="283.42599" + id="tspan4432"> @Id</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="313.42599" + id="tspan4434"> @GeneratedValue(strategy=GenerationType.IDENTITY)</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="343.42599" + id="tspan4436"> Long id;</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="373.42599" + id="tspan4438"> ...</tspan><tspan + sodipodi:role="line" + x="120.76169" + y="403.42599" + id="tspan4440">}</tspan></text> + <text + xml:space="preserve" + style="font-size:24px;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0;text-align:start;text-decoration:none;line-height:125%;letter-spacing:0px;word-spacing:0px;text-transform:none;direction:ltr;block-progression:tb;writing-mode:lr-tb;text-anchor:start;baseline-shift:baseline;color:#000000;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1px;marker:none;visibility:visible;display:inline;overflow:visible;enable-background:accumulate;font-family:Monospace;-inkscape-font-specification:Monospace" + x="112.0842" + y="480.87738" + id="text4442" + sodipodi:linespacing="125%"><tspan + sodipodi:role="line" + id="tspan4444" + x="112.0842" + y="480.87738">@Entity</tspan><tspan + sodipodi:role="line" + x="112.0842" + y="510.87738" + id="tspan4446">@Inheritance(<tspan + style="fill:#ff0000" + id="tspan4458">strategy=InheritanceType.SINGLE_TABLE</tspan>)</tspan><tspan + sodipodi:role="line" + x="112.0842" + y="540.87738" + id="tspan4448">public class BankAccount extends BillingDetail {</tspan><tspan + sodipodi:role="line" + x="112.0842" + y="570.87738" + id="tspan4450"> String iban;</tspan><tspan + sodipodi:role="line" + x="112.0842" + y="600.87738" + id="tspan4452">...</tspan><tspan + sodipodi:role="line" + x="112.0842" + y="630.87738" + id="tspan4454">}</tspan></text> + </g> <g inkscape:groupmode="layer" id="layer5"