dirtyharri wrote:
Bin mir nicht sicher ob ich dien Problem richtig verstanden habe...
Leider nicht ganz aber schimpfen werde ich trotzdem nicht... ;-)
dirtyharri wrote:
Nicht jeder Artikel definiert aber die selben eigenschaften.
Doch. Die definierten Eigenschaften gelten für alle Artikel. Aber der Anwender kann diese Eigenschaften selber anlegen/löschen.
Auch wenn es viel Getipper ist, erkläre ich es mal anders:
Der Anwender definiert einmal die Eigenschaften, die für
alle Artikel gültig sind (Name, Größe, Gewicht, Farbe, ..., was immer der Anwender benötigt). Ich als Entwickler kenne zur Implementierung weder Anzahl noch Beschriftung.
Deshalb muß ich, wenn ich die Artikel anzeigen/ändern/anlegen möchte, selber erst mal wissen, welche Eigenschaften denn existieren, wofür die Tabelle
Property herhalten soll.
Wird später mal eine Eigenschaft hinzugefügt oder gelöscht, so gilt dieses für
alle Artikel.
Somit steht also in
Property:
- PropertyId
- PropertyName
In der Artikel Tabelle stehen somit die Zuordnungen der jeweiligen PropertyId und dem entsprechenden Wert des Artikels:
- ArticleId
- PropertyId
- ArticlePropertyValue
Das hat dann aber zur Folge, daß z.B. bei 5 Eigenschaften, jeder Artikel aus 5 Datensätzen in der Artikel Tabelle besteht. Jeder dieser Datensätze repräsentiert jeweils eine der Eigenschaften.
Die Artikel Klasse hält somit die ArtikelId. Und da ich jede Anzahl an Eigenschaften bedienen können muß, möchte ich diese in einer Map ablegen:
Map<PropertyId, ArticlePropertyValue>
Ich hoffe, das war besser erklärt.
dirtyharri wrote:
dh. du kannst dir einen Artikel aus der db holen und hast die Properties als Liste.
Ab hier taucht ja mein Problem auf. Was ich Hibernate erklären möchte, was es eigentlich tun soll:
- hole alle Datensätze aus der Tabelle Article, bei denen die articleId identisch ist
- erstelle genau ein Objekt Article mit dieser articleId
- übergebe aus jedem dieser Datensätze propertyId und articlePropertyValue als Key/Value Paare an die Map<propertyId, articlePropertyValue)
Oder denke ich hier zu kompliziert?
Den Hinweis mit dem mapping-file (<map name=...) schaue ich mir mal genauer an. Damit kenne ich mich noch nicht aus und muß die Doku schmökern.
Da ich mich erst am Samstag wieder darum kümmern kann, werde ich mich wohl frühestens Samstag Nachmittag wieder melden können.
Wennn du mit meinen neuen Erklärungen nochmal Vorschäge hättest, würde ich mich darüber freuen.
Wenn du meinst, ich sollte die DB Struktur doch anders machen, bin ich auch da für Vorschäge offen. ;)
Bis dahin erstmal 1000 Dank und viele Grüße,
Christoph