Hallo zusammen,
ich versuche ein Hibernate XML Mapping auf Annotationen umzustellen, leider konnte ich für einen konkreten Fall noch nichts passendes finden. Ich habe eine Klasse Event, die hat eine Map<String,String> mit Attributen. Via XML lässt sich das sehr komfortabel machen:
Mit Annotationen krige ich es nicht hin, mein aktueller Versuch sieht so aus:
Das führt zu folgender Exception:
Diese tritt auf sobald ich die @AttributeOverrides mit angebe. Ohne diese läuft die Applikation zwar, meine Querys liefern aber jedes Event n-mal zurück.
Mich wundert es ein wenig das es so schwer ist etwas so simples per Annotations zu mappen. Mir ist es dabei auch egal ob es JPA oder Hibernate Annotations sind.
Grüße,
Sven
ich versuche ein Hibernate XML Mapping auf Annotationen umzustellen, leider konnte ich für einen konkreten Fall noch nichts passendes finden. Ich habe eine Klasse Event, die hat eine Map<String,String> mit Attributen. Via XML lässt sich das sehr komfortabel machen:
Code:
<map access="field" name="attributes" table="eventattributes" lazy="false">
<key column="id"/>
<index column="key" length="1024" type="string"/>
<element column="value" length="4096" type="string"/>
</map>
Mit Annotationen krige ich es nicht hin, mein aktueller Versuch sieht so aus:
Code:
@ElementCollection(targetClass = String.class, fetch = FetchType.EAGER)
@MapKeyClass(String.class)
@AttributeOverrides({
@AttributeOverride(name="key", column=@Column(name = "key", length = 1024)),
@AttributeOverride(name="value", column=@Column(name = "value", length = 4096))
})
private Map<String,String> attributes = new TreeMap<String,String>();
Das führt zu folgender Exception:
Code:
Caused by: org.hibernate.MappingException: Repeated column in mapping for collection: xxx.domain.EventDO.attributes column: count
at org.hibernate.mapping.Collection.checkColumnDuplication(Collection.java:341)
Diese tritt auf sobald ich die @AttributeOverrides mit angebe. Ohne diese läuft die Applikation zwar, meine Querys liefern aber jedes Event n-mal zurück.
Mich wundert es ein wenig das es so schwer ist etwas so simples per Annotations zu mappen. Mir ist es dabei auch egal ob es JPA oder Hibernate Annotations sind.
Grüße,
Sven