I have an mapped entity with a composite key as follows:
Code:
@javax.persistence.MappedSuperclass
public class BaseEntity implements Serializable
{
@Id()
@Columns(columns={@Column(name="mandator"),@Column(name="id")})
private CompositeKey id;
}
When I try to load as xml with DOM4J
Code:
Session session = hibernateSession.getSession(EntityMode.DOM4J);
Element element = (Element)session.get(BaseEntity .class, entity.getId());
I get the exception
Code:
java.lang.ClassCastException: ch.legando.data.hibernate.CompositeKey
at org.hibernate.property.Dom4jAccessor$ElementGetter.get(Dom4jAccessor.java:215)
at org.hibernate.tuple.component.AbstractComponentTuplizer.getPropertyValue(AbstractComponentTuplizer.java:87)
at org.hibernate.tuple.component.AbstractComponentTuplizer.getPropertyValues(AbstractComponentTuplizer.java:93)
at org.hibernate.type.ComponentType.getPropertyValues(ComponentType.java:376)
at org.hibernate.type.ComponentType.getHashCode(ComponentType.java:207)
at org.hibernate.engine.EntityKey.generateHashCode(EntityKey.java:126)
at org.hibernate.engine.EntityKey.<init>(EntityKey.java:70)
at org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:115)
at org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:905)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:842)
at org.hibernate.impl.SessionImpl.get(SessionImpl.java:835
It is working fine with a simple integer key!!
I am using hibernate hibernate 3.3 with hibernate annotations 3.4
Any help is much appreciated
Stefan