|
Re: [Teneo] Help needed with inherance mapping [message #82205 is a reply to message #82105] |
Sun, 06 May 2007 13:49 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Alain,
From a modeling perspective I like the joined-table strategy because it best reflects the
inheritance structure.
You can use the MappedSuperClass annotation for the topclass(es) but then references to the topclass
are not persisted correctly in the db. If there are no references to the topclass(es) then you can
try to flatten the inheritance structure by declaring part of the top as a mappedsuperclass and then
for the remaing parts choose the inheritance strategy which fits best. Different inheritance trees
can have different inheritance strategies.
With empty tables you mean join tables for the inheritance structure (which would mean that there
are empty eclasses) or join tables to persist references? Join tables for references are required
for many-to-many and non-unique one-to-many relations.
gr. Martin
Alain Picard wrote:
> Hi,
>
> I have a pretty complex ecore model implementing the KDM (Knowledge
> Discovery MetaModel) OMG standard. This meta-model is built just like
> MOF (ecore) in that every class is actually a subclass of the top class
> called element. There are also a ton of relation, as it is based on
> entity relation. There are also a number of abstract classes in the
> model and deep classes hierarchies.
>
> When I use the single_table (default), the database creation fails since
> MySql doesn't support more than 64 indexes. The number of tables is
> about 30 if I recall correctly.
>
> When I use the joined strategy, I get a database with 269 tables and
> many tables are essentially empty, being just there to perform join.
> This looks like it will not perform well. Also another posting on the
> forum mentioned a limit of 61 joined tables, which I am quite sure would
> be exceeded here.
>
> Then I tried the table_per_class strategy and this gave me the just
> reported error with the FK name length. But it also ended up with still
> 230 tables in the db (a quick count a model impl classes gives me 168
> classes).
>
> The documentation also briefly talks about the MappedSuperClass strategy
> that could be used.
>
> What are you suggestions and what have been seen to be best suited to
> the kind of model that I am dealing with.
>
> Regards
> Alain
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Re: [Teneo] Help needed with inherance mapping [message #605313 is a reply to message #82105] |
Sun, 06 May 2007 13:49 |
Martin Taal Messages: 5468 Registered: July 2009 |
Senior Member |
|
|
Hi Alain,
From a modeling perspective I like the joined-table strategy because it best reflects the
inheritance structure.
You can use the MappedSuperClass annotation for the topclass(es) but then references to the topclass
are not persisted correctly in the db. If there are no references to the topclass(es) then you can
try to flatten the inheritance structure by declaring part of the top as a mappedsuperclass and then
for the remaing parts choose the inheritance strategy which fits best. Different inheritance trees
can have different inheritance strategies.
With empty tables you mean join tables for the inheritance structure (which would mean that there
are empty eclasses) or join tables to persist references? Join tables for references are required
for many-to-many and non-unique one-to-many relations.
gr. Martin
Alain Picard wrote:
> Hi,
>
> I have a pretty complex ecore model implementing the KDM (Knowledge
> Discovery MetaModel) OMG standard. This meta-model is built just like
> MOF (ecore) in that every class is actually a subclass of the top class
> called element. There are also a ton of relation, as it is based on
> entity relation. There are also a number of abstract classes in the
> model and deep classes hierarchies.
>
> When I use the single_table (default), the database creation fails since
> MySql doesn't support more than 64 indexes. The number of tables is
> about 30 if I recall correctly.
>
> When I use the joined strategy, I get a database with 269 tables and
> many tables are essentially empty, being just there to perform join.
> This looks like it will not perform well. Also another posting on the
> forum mentioned a limit of 61 joined tables, which I am quite sure would
> be exceeded here.
>
> Then I tried the table_per_class strategy and this gave me the just
> reported error with the FK name length. But it also ended up with still
> 230 tables in the db (a quick count a model impl classes gives me 168
> classes).
>
> The documentation also briefly talks about the MappedSuperClass strategy
> that could be used.
>
> What are you suggestions and what have been seen to be best suited to
> the kind of model that I am dealing with.
>
> Regards
> Alain
--
With Regards, Martin Taal
Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Tel: +31 (0)84 420 2397
Fax: +31 (0)84 225 9307
Mail: mtaal@springsite.com - mtaal@elver.org
Web: www.springsite.com - www.elver.org
|
|
|
Powered by
FUDForum. Page generated in 0.01877 seconds