Oups,

In my sample_data.xml I have put "note" in place of "Note".
It seems to be ok now.

Julien.


Julien C. a écrit :
Hi,

My problem :
I have a Gabarit class with OneToMany relation with GabaritElement class ( which have 2 child class ) GabaritNote and GabaritCumul. gabarit contains a Set of GabaritElement and/or GabaritNote and/or GabaritCumul. I'm not very good in java but I think my Set is not good (have bad generic type). But I have no idea on how to correct this.

my code :

@Entity
public class Gabarit extends BaseObject {
    ...
    private Set<GabaritElement> elements = new HashSet<GabaritElement>();
@OneToMany
    @JoinColumn(name="GABARIT_ID")
    public Set<GabaritElement> getElements() {
        return elements;
    }
    ...
}



@Entity
@Inheritance(strategy=InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(
    name="ELEMENT_TYPE",
    discriminatorType=DiscriminatorType.STRING
)
@DiscriminatorValue("Element")
public class GabaritElement extends BaseObject {

    private Gabarit gabarit = null;
@ManyToOne( cascade = {CascadeType.PERSIST, CascadeType.MERGE} )
    @JoinColumn(name="ELEMENT_ID")
    public Element getElement() {
        return element;
    }

}

    @Entity
    @DiscriminatorValue("Cumul")
    public class GabaritCumul extends GabaritElement {
        ...
    }
@Entity
    @DiscriminatorValue("Note")
    public class GabaritNote extends GabaritElement {
        ...
    }
My error :

org.hibernate.WrongClassException: Object with id: 1 was not of the specified subclass: model.GabaritElement (Discriminator: note)
    at org.hibernate.loader.Loader.getInstanceClass(Loader.java:1444)
    at org.hibernate.loader.Loader.instanceNotYetLoaded(Loader.java:1275)
    at org.hibernate.loader.Loader.getRow(Loader.java:1197)
    at org.hibernate.loader.Loader.getRowFromResultSet(Loader.java:568)
    at org.hibernate.loader.Loader.doQuery(Loader.java:689)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224)
    at org.hibernate.loader.Loader.loadCollection(Loader.java:1985)
at org.hibernate.loader.collection.CollectionLoader.initialize(CollectionLoader.java:36) at org.hibernate.persister.collection.AbstractCollectionPersister.initialize(AbstractCollectionPersister.java:565) at org.hibernate.event.def.DefaultInitializeCollectionEventListener.onInitializeCollection(DefaultInitializeCollectionEventListener.java:60) at org.hibernate.impl.SessionImpl.initializeCollection(SessionImpl.java:1716) at org.hibernate.collection.AbstractPersistentCollection.initialize(AbstractPersistentCollection.java:344) at org.hibernate.collection.AbstractPersistentCollection.read(AbstractPersistentCollection.java:86) at org.hibernate.collection.PersistentSet.iterator(PersistentSet.java:163) at org.apache.taglibs.standard.tag.common.core.ForEachSupport.toForEachIterator(ForEachSupport.java:329) at org.apache.taglibs.standard.tag.common.core.ForEachSupport.supportedTypeForEachIterator(ForEachSupport.java:205) at org.apache.taglibs.standard.tag.common.core.ForEachSupport.prepare(ForEachSupport.java:137) at javax.servlet.jsp.jstl.core.LoopTagSupport.doStartTag(LoopTagSupport.java:271) at org.apache.jsp.WEB_002dINF.pages.gabaritconfig_jsp._jspx_meth_c_forEach_2(org.apache.jsp.WEB_002dINF.pages.gabaritconfig_jsp:456) at org.apache.jsp.WEB_002dINF.pages.gabaritconfig_jsp._jspService(org.apache.jsp.WEB_002dINF.pages.gabaritconfig_jsp:156) if you have an idea for my newbies question.
Thanks.
Julien.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to