no, it's a top level class. I also tried static nested class. Still the same issue I met.
Thanks, Gene > Date: Tue, 11 Sep 2007 12:35:27 +0530 > From: [EMAIL PROTECTED] > Subject: Re: ID class: no public string or class + string constructor? > To: [email protected] > > Is PeoplesoftSegmentId an *inner* (i.e. non-static nested) class? Make > it a static nested class or a top level class and try. > > Thanks, > Sahoo > > Gene Wu wrote: > > Here is the error stack: > > > > [WLServer TmsServer] javax.ejb.EJBException: nested exception is: > > <0|false|0.9.7> org.apache.openjpa.persistence.PersistenceException: > > The id type "class > > com.werner.accounting.model.PeoplesoftSegmentEntity$PeoplesoftSegmentId" > > specfied by persistent type "class com.wer > > er.accounting.model.PeoplesoftSegmentEntity" does not have a public string > > or class + string constructor. > > [WLServer TmsServer] <0|false|0.9.7> > > org.apache.openjpa.persistence.PersistenceException: The id type "class > > com.werner.accounting.mod > > l.PeoplesoftSegmentEntity$PeoplesoftSegmentId" specfied by persistent type > > "class com.werner.accounting.model.PeoplesoftSegmentEntity" > > does not have a public string or class + string constructor. > > [WLServer TmsServer] at > > org.apache.openjpa.kernel.BrokerImpl.newObjectId(BrokerImpl.java:1120) > > [WLServer TmsServer] at > > org.apache.openjpa.kernel.DelegatingBroker.newObjectId(DelegatingBroker.java:254) > > [WLServer TmsServer] at > > org.apache.openjpa.persistence.EntityManagerImpl.find(EntityManagerImpl.java:345) > > [WLServer TmsServer] at > > sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > > > > > > BTW, I didn't find any IdClass test cases in OpenJPA test suit. > > > > Thanks > > > > Gene. > > > > > > > > > >> Date: Mon, 10 Sep 2007 22:15:36 -0700 > >> From: [EMAIL PROTECTED] > >> To: [email protected] > >> Subject: Re: ID class: no public string or class + string constructor? > >> > >> > >> I got the same exception. > >> > >> nested exception is: <0|false|0.9.7> > >> org.apache.openjpa.persistence.PersistenceException: The id type "class > >> com.werner.accounting.model.PeoplesoftSegmentId" specfied by persistent > >> type > >> "class com.werner.accounting.model.PeoplesoftSegmentEntity" does not have a > >> public string or class + string constructor > >> > >> ID Class is: > >> > >> public class PeoplesoftSegmentId implements Serializable { > >> > >> public String _businessUnit; > >> > >> public String _vasTourId; > >> > >> /** Creates a new instance of PeoplesoftSegmentId */ > >> public PeoplesoftSegmentId() { > >> > >> } > >> > >> > >> @Override > >> public int hashCode() { > >> > >> int hash = 0; > >> hash += (this._businessUnit != null ? > >> this._businessUnit.hashCode() : 0); > >> hash += (this._vasTourId != null ? this._vasTourId.hashCode() : > >> 0); > >> return hash; > >> } > >> > >> @Override > >> public boolean equals(Object object) { > >> > >> if(!(object instanceof PeoplesoftSegmentId)) { > >> return false; > >> } > >> PeoplesoftSegmentId other = (PeoplesoftSegmentId)object; > >> if(this._businessUnit != other._businessUnit > >> && (this._businessUnit == null || > >> !this._businessUnit.equals(other._businessUnit))) > >> return false; > >> if(this._vasTourId != other._vasTourId > >> && (this._vasTourId == null || > >> !this._vasTourId.equals(other._vasTourId))) > >> return false; > >> return true; > >> } > >> > >> public String toString() { > >> return _businessUnit + ":" + _vasTourId; > >> } > >> } > >> > >> Entity Class is: > >> @Entity > >> @IdClass(PeoplesoftSegmentId.class) > >> public class PeoplesoftSegmentEntity implements Serializable { > >> > >> @Id > >> private String _businessUnit; > >> > >> @Id > >> private String _vasTourId; > >> > >> ... > >> > >> Thanks > >> > >> Gene. > >> > >> > >> Craig L Russell wrote: > >> > >>> Are you using @Id or @IdClass or @EmbeddedId annotations? > >>> > >>> I'm looking at 2.1.4, 9.1.14, and 9.1.15 and trying to figure out > >>> which case you're having trouble with. > >>> > >>> Craig > >>> > >>> On Mar 26, 2007, at 5:37 PM, Craig L Russell wrote: > >>> > >>> > >>>> Hi Jeff, > >>>> > >>>> It would be useful if you could include a code fragment and the @Id > >>>> annotation for your class to diagnose this. > >>>> > >>>> Thanks, > >>>> > >>>> Craig > >>>> > >>>> On Mar 26, 2007, at 4:35 PM, jeff wrote: > >>>> > >>>> > >>>>> getting this error: > >>>>> > >>>>> The id type "class com.sun.portal.pom.FooId" specfied by > >>>>> persistent type "class com.sun.portal.pom.Foo" does not have a > >>>>> public string or class + string constructor. > >>>>> > >>>>> this error doesn't seem to correspond to any of the requirements > >>>>> of an ID class as defined in the spec. > >>>>> > >>>>> my first guess is that it wants me to add an constructor that > >>>>> takes the result of toString() and constructs the ID class based > >>>>> on that, but adding a constructor that takes a string arg didn't > >>>>> change the error. i don't understand what it would want for the > >>>>> "class + string" constructor, so i was not sure what to try there. > >>>>> > >>>>> can someone help interpret this error? > >>>>> thanks! > >>>>> > >>>>> > >>>>> > >>>>> > >>>>> --------------------------------- > >>>>> Never miss an email again! > >>>>> Yahoo! Toolbar alerts you the instant new Mail arrives. Check it out. > >>>>> > >>>> Craig Russell > >>>> DB PMC, OpenJPA PPMC > >>>> [EMAIL PROTECTED] http://db.apache.org/jdo > >>>> > >>>> > >>>> > >>> Craig Russell > >>> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo > >>> 408 276-5638 mailto:[EMAIL PROTECTED] > >>> P.S. A good JDO? O, Gasp! > >>> > >>> > >>> > >>> > >>> > >> -- > >> View this message in context: > >> http://www.nabble.com/ID-class%3A-no-public-string-or-class-%2B-string-constructor--tf3470194.html#a12608201 > >> Sent from the OpenJPA Developers mailing list archive at Nabble.com. > >> > >> > > > > _________________________________________________________________ > > Capture your memories in an online journal! > > http://www.reallivemoms.com?ocid=TXT_TAGHM&loc=us > > > > _________________________________________________________________ Capture your memories in an online journal! http://www.reallivemoms.com?ocid=TXT_TAGHM&loc=us
