openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gene Wu <gene...@hotmail.com>
Subject RE: ID class: no public string or class + string constructor?
Date Tue, 11 Sep 2007 07:23:13 GMT
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: Sahoo@Sun.COM
> Subject: Re: ID class: no public string or class + string constructor?
> To: dev@openjpa.apache.org
> 
> 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: gene_wu@hotmail.com
> >> To: dev@openjpa.apache.org
> >> 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
> >>>> clr@apache.org http://db.apache.org/jdo
> >>>>
> >>>>
> >>>>         
> >>> Craig Russell
> >>> Architect, Sun Java Enterprise System http://java.sun.com/products/jdo
> >>> 408 276-5638 mailto:Craig.Russell@sun.com
> >>> 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
Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message