Skip to main content


Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » [Teneo] How to model a map?
[Teneo] How to model a map? [message #423053] Mon, 22 September 2008 11:07 Go to next message
Eclipse UserFriend
Originally posted by: luzi.anderegg.ergon.ch

I modelled a map in my ecore according to
http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If I
use this map in my program, a MappingException arises? Is there anything
special with maps and teneo? Do I have to annotate my ecore?

Regards,
Luzi
Re: [Teneo] How to model a map? [message #423054 is a reply to message #423053] Mon, 22 September 2008 11:20 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
This is a multi-part message in MIME format.
--------------030705080105020905060908
Content-Type: text/plain; charset=ISO-8859-1; format=flowed
Content-Transfer-Encoding: 7bit

Hi Luzi,
Yes maps should work. There are two ways in which Teneo can map maps:
- as a list of map entries (key, value pair), in this case the hibernate mapping will have a list as
the association
- as a real map (so with a map tag in the hbm).

If you set the option PersistenceOptions.EMAP_AS_TRUE_MAP to false (default is true) then Teneo will
map your emap as a list.

Attached you can find an example of an emap from the Teneo testcases.

Can you post your ecore and the resulting hbm?

gr. Martin

Luzi Anderegg wrote:
> I modelled a map in my ecore according to
> http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If I
> use this map in my program, a MappingException arises? Is there anything
> special with maps and teneo? Do I have to annotate my ecore?
>
> Regards,
> Luzi


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
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

--------------030705080105020905060908
Content-Type: text/xml;
name="emap.ecore"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="emap.ecore"

<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="emap"
nsURI=" http://www.eclipse.org/emf/teneo/samples/emf/schemaconstruct s/emap" nsPrefix="emap">
<eClassifiers xsi:type="ecore:EClass" name="Book">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Book"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="title" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="title"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="writers" upperBound="-1"
eType="#//StringToWriterMapEntry" containment="true" resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="writers"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="keyWords" upperBound="-1"
eType="#//StringToStringMapEntry" containment="true" resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="keyWords"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="cityByWriter" upperBound="-1"
eType="#//WriterToStringMapEntry" containment="true" resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="cityByWriter"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="categoryByDate" upperBound="-1"
eType="#//DateToCategoryMapEntry" containment="true" resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="categoryByDate"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EEnum" name="Category">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Category"/>
</eAnnotations>
<eLiterals name="Complex"/>
<eLiterals name="Simple" value="1"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="CategoryObject" instanceClassName="org.eclipse.emf.common.util.Enumerator">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Category:Object"/>
<details key="baseType" value="Category"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EDataType" name="Date" instanceClassName="java.util.Date">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Date"/>
</eAnnotations>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="DateToCategoryMapEntry" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="dateToCategoryMapEntry"/>
<details key="kind" value="empty"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="#//Date">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="key"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="#//Category"
defaultValueLiteral="Complex" unsettable="true">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="value"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringToStringMapEntry" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="StringToStringMapEntry"/>
<details key="kind" value="empty"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="key"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="value"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="StringToWriterMapEntry" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="StringToWriterMapEntry"/>
<details key="kind" value="empty"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="key"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EReference" name="value" eType="#//Writer"
resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="value"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="Writer">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="Writer"/>
<details key="kind" value="elementOnly"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name" lowerBound="1" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="element"/>
<details key="name" value="name"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WriterToStringMapEntry" instanceClassName="java.util.Map$Entry">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="name" value="WriterToStringMapEntry"/>
<details key="kind" value="empty"/>
</eAnnotations>
<eStructuralFeatures xsi:type="ecore:EReference" name="key" eType="#//Writer"
resolveProxies="false">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="key"/>
</eAnnotations>
</eStructuralFeatures>
<eStructuralFeatures xsi:type="ecore:EAttribute" name="value" eType="ecore:EDataType http://www.eclipse.org/emf/2003/XMLType#//String">
<eAnnotations source="http:///org/eclipse/emf/ecore/util/ExtendedMetaData">
<details key="kind" value="attribute"/>
<details key="name" value="value"/>
</eAnnotations>
</eStructuralFeatures>
</eClassifiers>
</ecore:EPackage>

--------------030705080105020905060908
Content-Type: text/xml;
name="emap.xsd"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="emap.xsd"

<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
targetNamespace=" http://www.eclipse.org/emf/teneo/samples/emf/schemaconstruct s/emap"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore"
xmlns=" http://www.eclipse.org/emf/teneo/samples/emf/schemaconstruct s/emap"
>

<xsd:complexType name="Book">
<xsd:sequence>
<xsd:element name="title" type="xsd:string" />
<xsd:element maxOccurs="unbounded" minOccurs="0" name="writers"
type="StringToWriterMapEntry"
/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="keyWords"
type="StringToStringMapEntry"
/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="cityByWriter"
type="WriterToStringMapEntry"
/>
<xsd:element maxOccurs="unbounded" minOccurs="0" name="categoryByDate"
type="dateToCategoryMapEntry"
/>
</xsd:sequence>
</xsd:complexType>

<xsd:complexType name="Writer">
<xsd:sequence>
<xsd:element name="name" type="xsd:string" />
</xsd:sequence>
</xsd:complexType>

<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="StringToWriterMapEntry">
<xsd:attribute name="key" type="xsd:string" />
<xsd:attribute name="value" type="xsd:IDREF" ecore:reference="Writer" />
</xsd:complexType>

<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="WriterToStringMapEntry">
<xsd:attribute name="key" type="xsd:IDREF" ecore:reference="Writer" />
<xsd:attribute name="value" type="xsd:string" />
</xsd:complexType>

<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="StringToStringMapEntry">
<xsd:attribute name="key" type="xsd:string" />
<xsd:attribute name="value" type="xsd:string" />
</xsd:complexType>

<xsd:simpleType ecore:instanceClass="java.util.Date" name="Date">
<xsd:restriction base="xsd:dateTime"/>
</xsd:simpleType>

<xsd:complexType ecore:instanceClass="java.util.Map$Entry" name="dateToCategoryMapEntry">
<xsd:attribute name="key" type="Date" />
<xsd:attribute name="value" type="Category" />
</xsd:complexType>

<xsd:simpleType name="Category">
<xsd:restriction base="xsd:NCName">
<xsd:enumeration value="Complex"/>
<xsd:enumeration value="Simple"/>
</xsd:restriction>
</xsd:simpleType>

</xsd:schema>

--------------030705080105020905060908
Content-Type: text/xml;
name="EMapAction_mysql_a_o_hibernate.hbm.xml"
Content-Transfer-Encoding: base64
Content-Disposition: inline;
filename="EMapAction_mysql_a_o_hibernate.hbm.xml"

PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiPz4KPCFET0NU WVBFIGhpYmVy
bmF0ZS1tYXBwaW5nIFBVQkxJQyAiLS8vSGliZXJuYXRlL0hpYmVybmF0ZSBN YXBwaW5nIERU
RCAzLjAvL0VOIiAiaHR0cDovL2hpYmVybmF0ZS5zb3VyY2Vmb3JnZS5uZXQv aGliZXJuYXRl
LW1hcHBpbmctMy4wLmR0ZCI+Cgo8aGliZXJuYXRlLW1hcHBpbmcgYXV0by1p bXBvcnQ9ImZh
bHNlIj4KCTx0eXBlZGVmIG5hbWU9ImVtYXAuQ2F0ZWdvcnlPYmplY3QiIGNs YXNzPSJvcmcu
ZWNsaXBzZS5lbWYudGVuZW8uaGliZXJuYXRlLm1hcHBpbmcuRGVmYXVsdFRv U3RyaW5nVXNl
clR5cGUiPgoJCTxwYXJhbSBuYW1lPSJlcGFja2FnZSI+aHR0cDovL3d3dy5l Y2xpcHNlLm9y
Zy9lbWYvdGVuZW8vc2FtcGxlcy9lbWYvc2NoZW1hY29uc3RydWN0cy9lbWFw PC9wYXJhbT4K
CQk8cGFyYW0gbmFtZT0iZWRhdGF0eXBlIj5DYXRlZ29yeU9iamVjdDwvcGFy YW0+Cgk8L3R5
cGVkZWY+Cgk8Y2xhc3MgbmFtZT0ib3JnLmVjbGlwc2UuZW1mLnRlbmVvLnNh bXBsZXMuZW1m
LnNjaGVtYWNvbnN0cnVjdHMuZW1hcC5pbXBsLkJvb2tJbXBsIiBlbnRpdHkt bmFtZT0iQm9v
ayIgYWJzdHJhY3Q9ImZhbHNlIiBsYXp5PSJmYWxzZSIgZGlzY3JpbWluYXRv ci12YWx1ZT0i
Qm9vayIgdGFibGU9ImBib29rYCI+CgkJPG1ldGEgYXR0cmlidXRlPSJlY2xh c3NOYW1lIj5C
b29rPC9tZXRhPgoJCTxtZXRhIGF0dHJpYnV0ZT0iZXBhY2thZ2UiPmh0dHA6 Ly93d3cuZWNs
aXBzZS5vcmcvZW1mL3RlbmVvL3NhbXBsZXMvZW1mL3NjaGVtYWNvbnN0cnVj dHMvZW1hcDwv
bWV0YT4KCQk8aWQgdHlwZT0ibG9uZyIgbmFtZT0iZV9pZCIgY29sdW1uPSJl X2lkIiBhY2Nl
c3M9Im9yZy5lY2xpcHNlLmVtZi50ZW5lby5oaWJlcm5hdGUubWFwcGluZy5p ZGVudGlmaWVy
LklkZW50aWZpZXJQcm9wZXJ0eUhhbmRsZXIiPgoJCQk8bWV0YSBhdHRyaWJ1 dGU9InN5bnRo
ZXRpY0lkIj50cnVlPC9tZXRhPgoJCQk8Z2VuZXJhdG9yIGNsYXNzPSJuYXRp dmUiLz4KCQk8
L2lkPgoJCTxkaXNjcmltaW5hdG9yIGNvbHVtbj0iYGR0eXBlYCIgdHlwZT0i c3RyaW5nIi8+
CgkJPHZlcnNpb24gbmFtZT0iZV92ZXJzaW9uIiBjb2x1bW49ImVfdmVyc2lv biIgYWNjZXNz
PSJvcmcuZWNsaXBzZS5lbWYudGVuZW8uaGliZXJuYXRlLm1hcHBpbmcucHJv cGVydHkuVmVy
c2lvblByb3BlcnR5SGFuZGxlciI+CgkJCTxtZXRhIGF0dHJpYnV0ZT0ic3lu dGhldGljVmVy
c2lvbiI+dHJ1ZTwvbWV0YT4KCQk8L3ZlcnNpb24+CgkJPHByb3BlcnR5IG5h bWU9InRpdGxl
IiBsYXp5PSJmYWxzZSIgaW5zZXJ0PSJ0cnVlIiB1cGRhdGU9InRydWUiIG5v dC1udWxsPSJ0
cnVlIiB1bmlxdWU9ImZhbHNlIiB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIj4K CQkJPGNvbHVt
biBub3QtbnVsbD0idHJ1ZSIgdW5pcXVlPSJmYWxzZSIgbmFtZT0iYHRpdGxl YCIvPgoJCTwv
cHJvcGVydHk+CgkJPG1hcCBuYW1lPSJ3cml0ZXJzIiBsYXp5PSJ0cnVlIiBj YXNjYWRlPSJh
bGwsZGVsZXRlLW9ycGhhbiI+CgkJCTxrZXkgdXBkYXRlPSJ0cnVlIiBmb3Jl aWduLWtleT0i
Ym9va193cml0ZXJzIj4KCQkJCTxjb2x1bW4gbmFtZT0iYGJvb2tfd3JpdGVy c19lX2lkYCIg
bm90LW51bGw9ImZhbHNlIiB1bmlxdWU9ImZhbHNlIi8+CgkJCTwva2V5PgoJ CQk8bWFwLWtl
eSB0eXBlPSJqYXZhLmxhbmcuU3RyaW5nIi8+CgkJCTxvbmUtdG8tbWFueSBl bnRpdHktbmFt
ZT0iV3JpdGVyIi8+CgkJPC9tYXA+CgkJPG1hcCBuYW1lPSJrZXlXb3JkcyIg bGF6eT0idHJ1
ZSIgY2FzY2FkZT0iYWxsLGRlbGV0ZS1vcnBoYW4iPgoJCQk8a2V5IHVwZGF0 ZT0idHJ1ZSI+
CgkJCQk8Y29sdW1uIG5hbWU9ImBib29rX2tleXdvcmRzX2VfaWRgIiBub3Qt bnVsbD0iZmFs
c2UiIHVuaXF1ZT0iZmFsc2UiLz4KCQkJPC9rZXk+CgkJCTxtYXAta2V5IHR5 cGU9ImphdmEu
bGFuZy5TdHJpbmciLz4KCQkJPGVsZW1lbnQgdHlwZT0iamF2YS5sYW5nLlN0 cmluZyIvPgoJ
CTwvbWFwPgoJCTxtYXAgbmFtZT0iY2l0eUJ5V3JpdGVyIiBsYXp5PSJ0cnVl IiBjYXNjYWRl
PSJhbGwsZGVsZXRlLW9ycGhhbiI+CgkJCTxrZXkgdXBkYXRlPSJ0cnVlIj4K CQkJCTxjb2x1
bW4gbmFtZT0iYGJvb2tfY2l0eWJ5d3JpdGVyX2VfaWRgIiBub3QtbnVsbD0i ZmFsc2UiIHVu
aXF1ZT0iZmFsc2UiLz4KCQkJPC9rZXk+CgkJCTxtYXAta2V5LW1hbnktdG8t bWFueSBlbnRp
dHktbmFtZT0iV3JpdGVyIi8+CgkJCTxlbGVtZW50IHR5cGU9ImphdmEubGFu Zy5TdHJpbmci
Lz4KCQk8L21hcD4KCQk8bWFwIG5hbWU9ImNhdGVnb3J5QnlEYXRlIiBsYXp5 PSJ0cnVlIiBj
YXNjYWRlPSJhbGwsZGVsZXRlLW9ycGhhbiI+CgkJCTxrZXkgdXBkYXRlPSJ0 cnVlIj4KCQkJ
CTxjb2x1bW4gbmFtZT0iYGJvb2tfY2F0ZWdvcnlieWRhdGVfZV9pZGAiIG5v dC1udWxsPSJm
YWxzZSIgdW5pcXVlPSJmYWxzZSIvPgoJCQk8L2tleT4KCQkJPG1hcC1rZXkg dHlwZT0idGlt
ZXN0YW1wIi8+CgkJCTxlbGVtZW50PgoJCQkJPHR5cGUgbmFtZT0ib3JnLmVj bGlwc2UuZW1m
LnRlbmVvLmhpYmVybmF0ZS5tYXBwaW5nLkVOdW1Vc2VyVHlwZSI+CgkJCQkJ PHBhcmFtIG5h
bWU9ImVudW1DbGFzcyI+b3JnLmVjbGlwc2UuZW1mLnRlbmVvLnNhbXBsZXMu ZW1mLnNjaGVt
YWNvbnN0cnVjdHMuZW1hcC5DYXRlZ29yeTwvcGFyYW0+CgkJCQk8L3R5cGU+ CgkJCTwvZWxl
bWVudD4KCQk8L21hcD4KCTwvY2xhc3M+Cgk8Y2xhc3MgbmFtZT0ib3JnLmVj bGlwc2UuZW1m
LnRlbmVvLnNhbXBsZXMuZW1mLnNjaGVtYWNvbnN0cnVjdHMuZW1hcC5pbXBs LldyaXRlcklt
cGwiIGVudGl0eS1uYW1lPSJXcml0ZXIiIGFic3RyYWN0PSJmYWxzZSIgbGF6 eT0iZmFsc2Ui
IGRpc2NyaW1pbmF0b3ItdmFsdWU9IldyaXRlciIgdGFibGU9ImB3cml0ZXJg Ij4KCQk8bWV0
YSBhdHRyaWJ1dGU9ImVjbGFzc05hbWUiPldyaXRlcjwvbWV0YT4KCQk8bWV0 YSBhdHRyaWJ1
dGU9ImVwYWNrYWdlIj5odHRwOi8vd3d3LmVjbGlwc2Uub3JnL2VtZi90ZW5l by9zYW1wbGVz
L2VtZi9zY2hlbWFjb25zdHJ1Y3RzL2VtYXA8L21ldGE+CgkJPGlkIHR5cGU9 ImxvbmciIG5h
bWU9ImVfaWQiIGNvbHVtbj0iZV9pZCIgYWNjZXNzPSJvcmcuZWNsaXBzZS5l bWYudGVuZW8u
aGliZXJuYXRlLm1hcHBpbmcuaWRlbnRpZmllci5JZGVudGlmaWVyUHJvcGVy dHlIYW5kbGVy
Ij4KCQkJPG1ldGEgYXR0cmlidXRlPSJzeW50aGV0aWNJZCI+dHJ1ZTwvbWV0 YT4KCQkJPGdl
bmVyYXRvciBjbGFzcz0ibmF0aXZlIi8+CgkJPC9pZD4KCQk8ZGlzY3JpbWlu YXRvciBjb2x1
bW49ImBkdHlwZWAiIHR5cGU9InN0cmluZyIvPgoJCTx2ZXJzaW9uIG5hbWU9 ImVfdmVyc2lv
biIgY29sdW1uPSJlX3ZlcnNpb24iIGFjY2Vzcz0ib3JnLmVjbGlwc2UuZW1m LnRlbmVvLmhp
YmVybmF0ZS5tYXBwaW5nLnByb3BlcnR5LlZlcnNpb25Qcm9wZXJ0eUhhbmRs ZXIiPgoJCQk8
bWV0YSBhdHRyaWJ1dGU9InN5bnRoZXRpY1ZlcnNpb24iPnRydWU8L21ldGE+ CgkJPC92ZXJz
aW9uPgoJCTxwcm9wZXJ0eSBuYW1lPSJuYW1lIiBsYXp5PSJmYWxzZSIgaW5z ZXJ0PSJ0cnVl
IiB1cGRhdGU9InRydWUiIG5vdC1udWxsPSJ0cnVlIiB1bmlxdWU9ImZhbHNl IiB0eXBlPSJq
YXZhLmxhbmcuU3RyaW5nIj4KCQkJPGNvbHVtbiBub3QtbnVsbD0idHJ1ZSIg dW5pcXVlPSJm
YWxzZSIgbmFtZT0iYG5hbWVgIi8+CgkJPC9wcm9wZXJ0eT4KCTwvY2xhc3M+ CjwvaGliZXJu
YXRlLW1hcHBpbmc+
--------------030705080105020905060908--
Re: [Teneo] How to model a map? [message #423061 is a reply to message #423054] Mon, 22 September 2008 14:36 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: luzi.anderegg.ergon.ch

Unfortunately, I'm not allowed to post the whole ecore. Below you find
the parts containing the map:

<eClassifiers xsi:type="ecore:EClass" name="IntegerToToolPinMapEntry"
instanceClassName="java.util.Map$Entry">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
eType="ecore:EDataType
http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
<eStructuralFeatures xsi:type="ecore:EReference" name="value"
eType="#//ToolPin"
containment="true"/>
</eClassifiers>

and the referencing class:

<eClassifiers xsi:type="ecore:EClass" name="ToolElement">
<eStructuralFeatures xsi:type="ecore:EReference" name="inputPins"
upperBound="-1"
eType="#//IntegerToToolPinMapEntry" containment="true"/>
</eClassifiers>

Luzi

Martin Taal wrote:
> Hi Luzi,
> Yes maps should work. There are two ways in which Teneo can map maps:
> - as a list of map entries (key, value pair), in this case the hibernate
> mapping will have a list as the association
> - as a real map (so with a map tag in the hbm).
>
> If you set the option PersistenceOptions.EMAP_AS_TRUE_MAP to false
> (default is true) then Teneo will map your emap as a list.
>
> Attached you can find an example of an emap from the Teneo testcases.
>
> Can you post your ecore and the resulting hbm?
>
> gr. Martin
>
> Luzi Anderegg wrote:
>> I modelled a map in my ecore according to
>> http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If I
>> use this map in my program, a MappingException arises? Is there
>> anything special with maps and teneo? Do I have to annotate my ecore?
>>
>> Regards,
>> Luzi
>
>
Re: [Teneo] How to model a map? [message #423064 is a reply to message #423061] Mon, 22 September 2008 14:58 Go to previous messageGo to next message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Luzi,
For my info, can you also post the relevant part of the mapping? And the stack trace of the
mappingexception?

gr. Martin

Luzi Anderegg wrote:
> Unfortunately, I'm not allowed to post the whole ecore. Below you find
> the parts containing the map:
>
> <eClassifiers xsi:type="ecore:EClass" name="IntegerToToolPinMapEntry"
> instanceClassName="java.util.Map$Entry">
> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
> eType="ecore:EDataType
> http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
> <eStructuralFeatures xsi:type="ecore:EReference" name="value"
> eType="#//ToolPin"
> containment="true"/>
> </eClassifiers>
>
> and the referencing class:
>
> <eClassifiers xsi:type="ecore:EClass" name="ToolElement">
> <eStructuralFeatures xsi:type="ecore:EReference" name="inputPins"
> upperBound="-1"
> eType="#//IntegerToToolPinMapEntry" containment="true"/>
> </eClassifiers>
>
> Luzi
>
> Martin Taal wrote:
>> Hi Luzi,
>> Yes maps should work. There are two ways in which Teneo can map maps:
>> - as a list of map entries (key, value pair), in this case the
>> hibernate mapping will have a list as the association
>> - as a real map (so with a map tag in the hbm).
>>
>> If you set the option PersistenceOptions.EMAP_AS_TRUE_MAP to false
>> (default is true) then Teneo will map your emap as a list.
>>
>> Attached you can find an example of an emap from the Teneo testcases.
>>
>> Can you post your ecore and the resulting hbm?
>>
>> gr. Martin
>>
>> Luzi Anderegg wrote:
>>> I modelled a map in my ecore according to
>>> http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If I
>>> use this map in my program, a MappingException arises? Is there
>>> anything special with maps and teneo? Do I have to annotate my ecore?
>>>
>>> Regards,
>>> Luzi
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
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] How to model a map? [message #423070 is a reply to message #423064] Mon, 22 September 2008 15:07 Go to previous messageGo to next message
Eclipse UserFriend
Originally posted by: luzi.anderegg.ergon.ch

Hi Martin,

here is the relevant part of the mapping (I hope):

<class name="xxxxxxxxxxxxxxxxxx.impl.ToolElementImpl"
entity-name="ToolElement" abstract="false" lazy="false"
discriminator-value="ToolElement" table="`toolelement`">
<meta attribute="eclassName">ToolElement</meta>
<meta attribute="epackage">http:///xxxxxxxxxxxxxx.ecore</meta>
<map name="inputPins" lazy="true" cascade="all,delete-orphan">
<key update="true" foreign-key="toolelement_inputpins">
<column name="`toolelement_inputpins_e_id`" not-null="false"
unique="false"/>
</key>
<map-key type="java.lang.Integer"/>
<one-to-many entity-name="ToolPin"/>
</map>
</class>

Gr.
Luzi

Martin Taal wrote:
> Hi Luzi,
> For my info, can you also post the relevant part of the mapping? And the
> stack trace of the mappingexception?
>
> gr. Martin
>
> Luzi Anderegg wrote:
>> Unfortunately, I'm not allowed to post the whole ecore. Below you find
>> the parts containing the map:
>>
>> <eClassifiers xsi:type="ecore:EClass" name="IntegerToToolPinMapEntry"
>> instanceClassName="java.util.Map$Entry">
>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>> eType="ecore:EDataType
>> http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
>> <eStructuralFeatures xsi:type="ecore:EReference" name="value"
>> eType="#//ToolPin"
>> containment="true"/>
>> </eClassifiers>
>>
>> and the referencing class:
>>
>> <eClassifiers xsi:type="ecore:EClass" name="ToolElement">
>> <eStructuralFeatures xsi:type="ecore:EReference" name="inputPins"
>> upperBound="-1"
>> eType="#//IntegerToToolPinMapEntry" containment="true"/>
>> </eClassifiers>
>>
>> Luzi
>>
>> Martin Taal wrote:
>>> Hi Luzi,
>>> Yes maps should work. There are two ways in which Teneo can map maps:
>>> - as a list of map entries (key, value pair), in this case the
>>> hibernate mapping will have a list as the association
>>> - as a real map (so with a map tag in the hbm).
>>>
>>> If you set the option PersistenceOptions.EMAP_AS_TRUE_MAP to false
>>> (default is true) then Teneo will map your emap as a list.
>>>
>>> Attached you can find an example of an emap from the Teneo testcases.
>>>
>>> Can you post your ecore and the resulting hbm?
>>>
>>> gr. Martin
>>>
>>> Luzi Anderegg wrote:
>>>> I modelled a map in my ecore according to
>>>> http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If
>>>> I use this map in my program, a MappingException arises? Is there
>>>> anything special with maps and teneo? Do I have to annotate my ecore?
>>>>
>>>> Regards,
>>>> Luzi
>>>
>>>
>
>
Re: [Teneo] How to model a map? [message #423073 is a reply to message #423070] Mon, 22 September 2008 15:14 Go to previous message
Martin Taal is currently offline Martin TaalFriend
Messages: 5468
Registered: July 2009
Senior Member
Hi Luzi,
And can you post the mappingexception?

gr. Martin

Luzi Anderegg wrote:
> Hi Martin,
>
> here is the relevant part of the mapping (I hope):
>
> <class name="xxxxxxxxxxxxxxxxxx.impl.ToolElementImpl"
> entity-name="ToolElement" abstract="false" lazy="false"
> discriminator-value="ToolElement" table="`toolelement`">
> <meta attribute="eclassName">ToolElement</meta>
> <meta attribute="epackage">http:///xxxxxxxxxxxxxx.ecore</meta>
> <map name="inputPins" lazy="true" cascade="all,delete-orphan">
> <key update="true" foreign-key="toolelement_inputpins">
> <column name="`toolelement_inputpins_e_id`"
> not-null="false" unique="false"/>
> </key>
> <map-key type="java.lang.Integer"/>
> <one-to-many entity-name="ToolPin"/>
> </map>
> </class>
>
> Gr.
> Luzi
>
> Martin Taal wrote:
>> Hi Luzi,
>> For my info, can you also post the relevant part of the mapping? And
>> the stack trace of the mappingexception?
>>
>> gr. Martin
>>
>> Luzi Anderegg wrote:
>>> Unfortunately, I'm not allowed to post the whole ecore. Below you
>>> find the parts containing the map:
>>>
>>> <eClassifiers xsi:type="ecore:EClass" name="IntegerToToolPinMapEntry"
>>> instanceClassName="java.util.Map$Entry">
>>> <eStructuralFeatures xsi:type="ecore:EAttribute" name="key"
>>> eType="ecore:EDataType
>>> http://www.eclipse.org/emf/2002/Ecore#//EIntegerObject"/>
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="value"
>>> eType="#//ToolPin"
>>> containment="true"/>
>>> </eClassifiers>
>>>
>>> and the referencing class:
>>>
>>> <eClassifiers xsi:type="ecore:EClass" name="ToolElement">
>>> <eStructuralFeatures xsi:type="ecore:EReference" name="inputPins"
>>> upperBound="-1"
>>> eType="#//IntegerToToolPinMapEntry" containment="true"/>
>>> </eClassifiers>
>>>
>>> Luzi
>>>
>>> Martin Taal wrote:
>>>> Hi Luzi,
>>>> Yes maps should work. There are two ways in which Teneo can map maps:
>>>> - as a list of map entries (key, value pair), in this case the
>>>> hibernate mapping will have a list as the association
>>>> - as a real map (so with a map tag in the hbm).
>>>>
>>>> If you set the option PersistenceOptions.EMAP_AS_TRUE_MAP to false
>>>> (default is true) then Teneo will map your emap as a list.
>>>>
>>>> Attached you can find an example of an emap from the Teneo testcases.
>>>>
>>>> Can you post your ecore and the resulting hbm?
>>>>
>>>> gr. Martin
>>>>
>>>> Luzi Anderegg wrote:
>>>>> I modelled a map in my ecore according to
>>>>> http://wiki.eclipse.org/EMF/FAQ#How_do_I_create_a_Map_in_EMF .3F. If
>>>>> I use this map in my program, a MappingException arises? Is there
>>>>> anything special with maps and teneo? Do I have to annotate my ecore?
>>>>>
>>>>> Regards,
>>>>> Luzi
>>>>
>>>>
>>
>>


--

With Regards, Martin Taal

Springsite/Elver.org
Office: Hardwareweg 4, 3821 BV Amersfoort
Postal: Nassaulaan 7, 3941 EC Doorn
The Netherlands
Cell: +31 (0)6 288 48 943
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
Previous Topic:CDO make table DB bug
Next Topic:Re: Does a datatype describing the name of a EStructuralFeature exist?
Goto Forum:
  


Current Time: Tue Apr 16 15:36:30 GMT 2024

Powered by FUDForum. Page generated in 0.85655 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top