EMF/Teneo EMap Problem

krazun

Bekanntes Mitglied
Hallo,

ich habe ein kleines Problem mit EMF und der Nutzung einer EMap. Ich arbeite mit dem Visuellen EMF-Editor und habe dort einer Klasse eine EMap als Attribut hinzugefügt. Ich brauche sie um UUIDs (EString) als key und Zahlen (EInt) als Value zu speichern. Die EMap soll von Hibernate über Teneo mit persistiert werden.

Nun kann ich den Model-Code natürlich nicht generieren bevor ich 2 Serialisierbare Typ-Parameter angegebene habe, allerdings ist es mir bis jetzt nicht gelungen rauszufinden wie ich das in dem Editor tun kann.


Wäre für jede Hilfe sehr dankbar. Versuche schon seit gestern eine EMap in EMF zu nutzen aber irgendwie klappt es einfach nicht.

mfg,
krazun
 

Anhänge

  • emap.PNG
    emap.PNG
    20,7 KB · Aufrufe: 40
  • error.PNG
    error.PNG
    8,5 KB · Aufrufe: 38

krazun

Bekanntes Mitglied
Achja ich habe ebenfalls versucht das Beispiel von EMF/FAQ - Eclipsepedia umzusetzen und die EMap nicht als Attribut hinzuzufügen sondern als eigene Klasse mit dem Instance Class Name: java.util.Map$Entry, key und value Attributen mit den entsprechenden Datentypen und einer Referenz auf die Klasse.

Bekomme dabei allerdings dann beim Model-Code erzeugen einen Fehler (Siehe Anhang).

mfg,
krazun
 

Anhänge

  • entryclass.PNG
    entryclass.PNG
    7,1 KB · Aufrufe: 35
  • error.PNG
    error.PNG
    36,2 KB · Aufrufe: 34
Zuletzt bearbeitet:

krazun

Bekanntes Mitglied
Seltsam ist auch das EMap<String, String> wunderbar funktioniert! Nur EMap<String, int> geht nicht.

Die entsprechende Stelle ist:

Java:
	/**
	 * Returns the value of the '<em><b>Uuid Map Reference</b></em>' map.
	 * The key is of type {@link java.lang.String},
	 * and the value is of type {@link int},
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Uuid Map Reference</em>' map isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Uuid Map Reference</em>' map.
	 * @see model.ModelPackage#getComponentSet_UuidMapReference()
	 * @model mapType="model.StringToIntMap<org.eclipse.emf.ecore.EString, org.eclipse.emf.ecore.EInt>"
	 * @generated
	 */
	EMap<String, int> getUuidMapReference();

} // ComponentSet


mfg,
krazun
 

Wildcard

Top Contributor
Ahhh :)
int ist primitiv und kann daher auch nicht in eine Map gesteckt werden. In der Praxis geht das dann zwar wieder dank Autoboxing, aber die Map kann dennoch nicht mit int als Template Parameter verwendet verwendet werden.
Also im Klartext:
Du brauchst eine StringToIntegerMap
 

krazun

Bekanntes Mitglied
Mist! Es gibt da doch noch ein kleines Problemchen ;)

Zwar lässt sich der Model-Code nun erstellen und die passenden Methoden für die EMap sind im Programm enthalten, allerdings gibt es einen Fehler wenn man nun einen Wert wirklich in die Map packen will:

Code:
8350 [main] WARN org.hibernate.util.JDBCExceptionReporter - SQL Error: 208, SQLState: S0002
8350 [main] ERROR org.hibernate.util.JDBCExceptionReporter - Ungültiger Objektname 'VariantUuidToNumberMap'.
Exception in thread "main" org.hibernate.exception.SQLGrammarException: could not initialize a collection: [Variant.VariantUuidToNumberMap#1]
	at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:90)
	at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2022)
	at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:59)
	at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:587)
	at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:83)
	at org.eclipse.emf.teneo.hibernate.mapping.EMFInitializeCollectionEventListener.onInitializeCollection(EMFInitializeCollectionEventListener.java:61)
	at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1743)
	at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:366)
	at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:108)
	at org.hibernate.collection.PersistentMap.entrySet(PersistentMap.java:265)
	at org.eclipse.emf.teneo.hibernate.mapping.elist.MapHibernatePersistableEMap.doLoad(MapHibernatePersistableEMap.java:208)
	at org.eclipse.emf.teneo.mapping.elist.PersistableEMap.load(PersistableEMap.java:194)
	at org.eclipse.emf.teneo.mapping.elist.PersistableEMap.put(PersistableEMap.java:524)
	at eu.besst.haa.lca.ui.builder.VariantEditor.fillVariant(VariantEditor.java:407)
	at eu.besst.haa.lca.ui.builder.VariantEditor.updateVariant(VariantEditor.java:333)
	at eu.besst.haa.lca.ui.builder.VariantEditor$2.widgetSelected(VariantEditor.java:206)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(Unknown Source)
	at org.eclipse.swt.widgets.EventTable.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Widget.sendEvent(Unknown Source)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Unknown Source)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Unknown Source)
	at eu.besst.haa.lca.ui.main.MainWindow.initApplication(MainWindow.java:128)
	at eu.besst.haa.lca.ui.main.MainWindow.main(MainWindow.java:106)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Ungültiger Objektname 'VariantUuidToNumberMap'.
	at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:197)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1493)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:390)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:340)
	at com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:4575)
	at com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnection.java:1400)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.java:179)
	at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:154)
	at com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeQuery(SQLServerPreparedStatement.java:283)
	at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:208)
	at org.hibernate.loader.Loader.getResultSet(Loader.java:1808)
	at org.hibernate.loader.Loader.doQuery(Loader.java:697)
	at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259)
	at org.hibernate.loader.Loader.loadCollection(Loader.java:2015)
	... 21 more

Ich hab mir mal die Initialisierungsmeldungen von Hibernate genauer angesehen und dort findet man folgenden Fehler:

Code:
2685 [main] INFO org.hibernate.tool.hbm2ddl.DatabaseMetadata - table not found: VariantUuidToNumberMap
2689 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: create table VariantUuidToNumberMap ([variant_variantuuidtonumbermap_e_id] numeric(19,0) null, elt int null, idx varchar(255) not null, primary key ([variant_variantuuidtonumbermap_e_id], idx))
2690 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Eine PRIMARY KEY-Einschränkung kann für eine Spalte in der 'VariantUuidToNumberMap'-Tabelle, die NULL zulässt, nicht definiert werden.
2690 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Unsuccessful: alter table VariantUuidToNumberMap add constraint FK583807381E736B27 foreign key ([variant_variantuuidtonumbermap_e_id]) references [variant]
2691 [main] ERROR org.hibernate.tool.hbm2ddl.SchemaUpdate - Das 'VariantUuidToNumberMap'-Objekt wurde nicht gefunden, weil es nicht vorhanden ist oder Sie nicht über die entsprechenden Berechtigungen verfügen.

Dort steht zwar im Prinzip wo das Problem ist, allerdings stehe ich grad ein wenig auf dem Schlauch was dessen behebung angeht. Hat vielleicht jemand eine Idee?

Wäre für jeden Tipp dankbar

mfg,
krazun
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Problem mit EMF/Teneo, GregorianCalendar, Date, Hibernate Timestamp Plattformprogrammierung 6
K Problem bei Einbinden einer DLL in Java-Projekt Plattformprogrammierung 4
Wurstsemmel RCP SWT-Problem: Programm sucht Cocoa-Bibliothek unter Windows Plattformprogrammierung 6
Shams Antbuild - Problem bei OSGi Anfängertutorial Plattformprogrammierung 0
D Problem mit eclipse Plattformprogrammierung 2
J JNA Implimentierungs Problem Plattformprogrammierung 0
Shams Problem bei der Knopflerfischinstallation Plattformprogrammierung 2
J Charset-Problem nach Plugin-Export Plattformprogrammierung 1
TheWhiteShadow RCP Problem mit Plugin Interaktion Plattformprogrammierung 6
D Eclipse_Visual Editor Problem Plattformprogrammierung 2
J Eclipse Plug-In für UML-Diagramme Problem Plattformprogrammierung 4
O Eclipse Plugin - Einfachstes Problem, das es gibt. Plattformprogrammierung 2
dzim OSGi Problem beim Verwenden von Declaratice Services Plattformprogrammierung 18
T netbeans problem? Plattformprogrammierung 4
dzim RCP Problem mit MenuManager Plattformprogrammierung 3
H RCP Problem mit Extension Schema Plattformprogrammierung 10
R JFace Databinding Problem Plattformprogrammierung 5
F Ecilpse plugin und MWE Workflow: classpath Problem Plattformprogrammierung 12
W Wahrscheinlich triviales Problem, aber komm nicht weiter Plattformprogrammierung 7
K SelectionListener / SelectionProvider Problem Plattformprogrammierung 2
M Xpand Anfäger Problem Plattformprogrammierung 3
K Eclipse RCP, EMF, Hibernate Problem Plattformprogrammierung 7
dzim RCP Problem mit Umsetzen des Workspace unter Win Plattformprogrammierung 4
B PreferencesService Problem Plattformprogrammierung 2
L RCP TreeViewer Listener Problem Plattformprogrammierung 12
C target platform problem Plattformprogrammierung 2
K NoClassDefFoundError Problem Plattformprogrammierung 24
F Eclipse: Plug-In mit Ecoding Problem Plattformprogrammierung 7
O Problem mit relativen Pfaden in einem RCP-Plugin Plattformprogrammierung 5
dzim Problem beim neuanlegen von Composites Plattformprogrammierung 4
hdi Problem bei Eclipse Plugin Export Plattformprogrammierung 9
K Bild Problem in exportierter RCP Anwendung Plattformprogrammierung 5
M Problem beim Zugriff auf Klasse aus Fragment in einem anderen Plugin Plattformprogrammierung 3
D Problem mit Synth Painter und OSGi (Equinox) Plattformprogrammierung 8
G plugin.xml Problem Plattformprogrammierung 4
I SWT Popup-Menu Problem (Position) Plattformprogrammierung 4

Ähnliche Java Themen

Neue Themen


Oben