You can combine two fields in one string-field and use it as String PK

On 11 май, 14:14, aptest1 actiprocess <apte...@gmail.com> wrote:
> We are unable to use two fileds as the compisit primary keys in google
> datastore, its throwing follwing exception if we make two fields as
> primary key fileds.please help us to resolve this iusse
>
> our company class has two primary keys as below, we are using
> companyId,docId as primary keys
> *************************************************************************** 
> ****************************
>
> @PersistenceCapable(identityType=IdentityType.DATASTORE)
> public class Company{
>                   �...@primarykey
>         @Persistent(valueStrategy = IdGeneratorStrategy.SEQUENCE)
>         private Long companyId;
>         @PrimaryKey
>                     String docId
>
> }
>
> if we start the server we are getting the following Exception :
> *************************************************************************** 
> *****s
> May 11, 2010 10:07:31 AM
> org.datanucleus.metadata.AbstractClassMetaData determineObjectIdClass
> SEVERE: Class com.atp.smartstore.DB.config.User has application-
> identity and no objectid-class specified yet has 2 primary key fields.
> Unable to use SingleFieldIdentity.
> Class com.atp.smartstore.DB.config.User has application-identity and
> no objectid-class specified yet has 2 primary key fields. Unable to
> use SingleFieldIdentity.
> May 11, 2010 10:07:31 AM org.datanucleus.enhancer.DataNucleusEnhancer
> main
> SEVERE: DataNucleus Enhancer completed with an error. Please review
> the enhancer log for full details. Some classes may have been enhanced
> but some caused errors
> Class com.atp.smartstore.DB.config.User has application-identity and
> no objectid-class specified yet has 2 primary key fields. Unable to
> use SingleFieldIdentity.
> org.datanucleus.metadata.InvalidMetaDataException: Class
> com.atp.smartstore.DB.config.User has application-identity and no
> objectid-class specified yet has 2 primary key fields. Unable to use
> SingleFieldIdentity.
>         at
> org.datanucleus.metadata.AbstractClassMetaData.determineObjectIdClass(Abstr 
> actClassMetaData.java:
> 1032)
>         at org.datanucleus.metadata.ClassMetaData.populate(ClassMetaData.java:
> 205)
>         at org.datanucleus.metadata.MetaDataManager
> $1.run(MetaDataManager.java:2317)
>         at java.security.AccessController.doPrivileged(Native Method)
>         at
> org.datanucleus.metadata.MetaDataManager.populateAbstractClassMetaData(Meta 
> DataManager.java:
> 2311)
>         at
> org.datanucleus.metadata.MetaDataManager.populateFileMetaData(MetaDataManag 
> er.java:
> 2148)
>         at
> org.datanucleus.metadata.MetaDataManager.initialiseFileMetaDataForUse(MetaD 
> ataManager.java:
> 864)
>         at
> org.datanucleus.metadata.MetaDataManager.loadClasses(MetaDataManager.java:
> 433)
>         at
> org.datanucleus.enhancer.DataNucleusEnhancer.getFileMetadataForInput(DataNu 
> cleusEnhancer.java:
> 743)
>         at
> org.datanucleus.enhancer.DataNucleusEnhancer.enhance(DataNucleusEnhancer.ja 
> va:
> 545)
>         at
> org.datanucleus.enhancer.DataNucleusEnhancer.main(DataNucleusEnhancer.java:
> 1252)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>         at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:
> 39)
>         at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImp 
> l.java:
> 25)
>         at java.lang.reflect.Method.invoke(Method.java:585)
>         at com.google.appengine.tools.enhancer.Enhancer.execute(Enhancer.java:
> 57)
>         at com.google.appengine.tools.enhancer.Enhance.<init>(Enhance.java:
> 60)
>         at com.google.appengine.tools.enhancer.Enhance.main(Enhance.java:41)
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Google App Engine for Java" group.
> To post to this group, send email to google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to 
> google-appengine-java+unsubscr...@googlegroups.com.
> For more options, visit this group 
> athttp://groups.google.com/group/google-appengine-java?hl=en.

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to