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 05:15:36 GMT

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.


Mime
View raw message